/

CVE-2026-106103

Severity:

HIGH RISK

(7.1)

Path Traversal (CWE-22) in Quasar IconGenie CLI Tool

CVE-2026-106103

Awaiting Analysis

Vulnerability type

Category:

Path Traversal

CWE:

CWE-22, CWE-73

Impact:

Arbitrary File Write and Overwrite

Severity:

HIGH RISK

(7.1)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A path traversal vulnerability in Quasar IconGenie allows crafted profile values to direct generated image content outside the intended Quasar project directory. A developer who runs an untrusted profile may cause files to be created or overwritten anywhere their account can write, including shell startup files, build scripts, or executable configuration.

A path traversal vulnerability in Quasar IconGenie allows crafted profile values to direct generated image content outside the intended Quasar project directory. A developer who runs an untrusted profile may cause files to be created or overwritten anywhere their account can write, including shell startup files, build scripts, or executable configuration.

Affected context

The issue occurs when the IconGenie command-line tool processes user-supplied profile data during image generation. It is relevant when profile-provided folder and name values are joined with the application directory without constraining the final resolved path, while validation checks only that those values are non-empty strings.

The issue occurs when the IconGenie command-line tool processes user-supplied profile data during image generation. It is relevant when profile-provided folder and name values are joined with the application directory without constraining the final resolved path, while validation checks only that those values are non-empty strings.

Exploit preconditions

  • Attack surface: Local command-line tooling used during Quasar development or asset generation
  • Required access: Ability to provide or modify a profile consumed by the developer
  • Trigger point: Execution of icongenie generate --profile
  • Why exploitation is possible: Profile paths are combined with the project directory without enforcing that the resolved destination remains within the intended directory
  • Attack surface: Local command-line tooling used during Quasar development or asset generation
  • Required access: Ability to provide or modify a profile consumed by the developer
  • Trigger point: Execution of icongenie generate --profile
  • Why exploitation is possible: Profile paths are combined with the project directory without enforcing that the resolved destination remains within the intended directory

Why this happens

The underlying bug is insufficient path validation for attacker-influenced filesystem destinations. The application accepts non-empty folder and name strings, joins them with a trusted base directory, and does not verify that the normalized result remains below that directory. This behavior maps primarily to CWE-22: Improper Limitation of a Pathname to a Restricted Directory, with CWE-73: External Control of File Name or Path also describing the externally controlled destination.

The underlying bug is insufficient path validation for attacker-influenced filesystem destinations. The application accepts non-empty folder and name strings, joins them with a trusted base directory, and does not verify that the normalized result remains below that directory. This behavior maps primarily to CWE-22: Improper Limitation of a Pathname to a Restricted Directory, with CWE-73: External Control of File Name or Path also describing the externally controlled destination.

Potential impact

  • Arbitrary files may be created or overwritten within the invoking user's writable locations
  • Shell startup files could be modified and execute unintended commands in later sessions
  • Build scripts or project configuration could be altered
  • Generated content could introduce code or supply-chain changes into a project
  • Developer credentials or other user-owned data may be exposed indirectly
  • Arbitrary files may be created or overwritten within the invoking user's writable locations
  • Shell startup files could be modified and execute unintended commands in later sessions
  • Build scripts or project configuration could be altered
  • Generated content could introduce code or supply-chain changes into a project
  • Developer credentials or other user-owned data may be exposed indirectly

General mitigation guidance

Mitigation should focus on enforcing filesystem destination boundaries and reducing trust in profile-controlled paths.

Common defensive patterns include:

  • Resolve candidate paths against a trusted project root and reject any result outside that root
  • Prefer fixed, application-controlled output directories over arbitrary profile paths
  • Validate path components as structured names rather than accepting unrestricted path strings
  • Use allowlists for permitted folders, filenames, and file extensions
  • Avoid overwriting existing files unless an explicit, separately controlled policy allows it
  • Run generation workflows with least-privilege accounts and isolated workspaces
  • Treat profiles from repositories, archives, or external contributors as untrusted input

Mitigation should focus on enforcing filesystem destination boundaries and reducing trust in profile-controlled paths.

Common defensive patterns include:

  • Resolve candidate paths against a trusted project root and reject any result outside that root
  • Prefer fixed, application-controlled output directories over arbitrary profile paths
  • Validate path components as structured names rather than accepting unrestricted path strings
  • Use allowlists for permitted folders, filenames, and file extensions
  • Avoid overwriting existing files unless an explicit, separately controlled policy allows it
  • Run generation workflows with least-privilege accounts and isolated workspaces
  • Treat profiles from repositories, archives, or external contributors as untrusted input

How teams detect issues like this

Organizations can detect this class of issue through:

  • Static analysis rules for path joins involving user-controlled folder or filename values
  • Code review checks requiring canonicalization followed by containment validation
  • Tests using parent-directory segments, absolute paths, symbolic links, and platform-specific path formats
  • CI policies that flag writes outside declared workspace or artifact directories
  • Runtime monitoring for unexpected file creation or modification outside the project root

Automated security review tools may help identify unsafe path construction, but filesystem-boundary tests should also verify actual behavior across supported platforms.

Organizations can detect this class of issue through:

  • Static analysis rules for path joins involving user-controlled folder or filename values
  • Code review checks requiring canonicalization followed by containment validation
  • Tests using parent-directory segments, absolute paths, symbolic links, and platform-specific path formats
  • CI policies that flag writes outside declared workspace or artifact directories
  • Runtime monitoring for unexpected file creation or modification outside the project root

Automated security review tools may help identify unsafe path construction, but filesystem-boundary tests should also verify actual behavior across supported platforms.

Sources

SourceLink
github.comgithub.com/quasarframework/quasar/commit/87c89a80ec84f1eb7dbe258e5367161b0598ceb3
github.comgithub.com/quasarframework/quasar/releases/tag/@quasar/icongenie-v6.1.1
github.comgithub.com/quasarframework/quasar/security/advisories/GHSA-wmpw-j6qv-mw88

Frequently asked

questions

The vulnerability is primarily local and generally requires a developer or automation process to execute a crafted profile. Remote impact may arise indirectly when an untrusted profile is obtained from a repository, dependency, archive, or collaboration workflow.

An attacker needs a way to influence the profile consumed by IconGenie and have a user or build process run the profile. The resulting writes are limited by the permissions of that process.

Resolve profile-derived paths against a trusted project directory and reject every result that escapes that directory. Fixed output locations and restricted filename components provide additional protection.

Treat profile paths as untrusted, apply canonical path containment checks, test traversal and symlink edge cases, and enforce least privilege for development and build tooling.

The vulnerability is primarily local and generally requires a developer or automation process to execute a crafted profile. Remote impact may arise indirectly when an untrusted profile is obtained from a repository, dependency, archive, or collaboration workflow.

An attacker needs a way to influence the profile consumed by IconGenie and have a user or build process run the profile. The resulting writes are limited by the permissions of that process.

Resolve profile-derived paths against a trusted project directory and reject every result that escapes that directory. Fixed output locations and restricted filename components provide additional protection.

Treat profile paths as untrusted, apply canonical path containment checks, test traversal and symlink edge cases, and enforce least privilege for development and build tooling.

Find out what's already
exploitable in your codebase.