Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessInfluence SSG page definitions via untrusted content
-
DeliverySupply dir/filename with ../ traversal or symlink target
-
ExploitSSG builder joins values to distDir unchecked
-
ExecutionGenerated file written outside distDir
-
ImpactNew file/directory created as build user
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires running an SSG build ('quasar build -m ssg') with @quasar/app-vite 3.1.0-3.2.0 where getSsgPages() returns page definitions whose 'dir'/'filename' values are attacker-controllable - specifically when the application derives those SSG page definitions from external or otherwise untrusted content, or when the build configuration is compromised. A traversal payload (e.g. '../') or a pre-existing symlink beneath distDir is needed to redirect output outside build.distDir. Limiting factors: SSG page definitions and Quasar config are trusted input by default, so default deployments are not exploitable; the SSG renderer's no-overwrite behavior prevents overwriting existing files, restricting impact to creation of new files/directories; and the flaw is local/build-time only, not remotely reachable against a running service. |
| Impact | No CVSS vector, EPSS score, KEV status, or SSVC data was provided (CVSS Score and Vector are both N/A), so quantitative exploitation signals are absent and risk must be judged from the CWE-22 classification and the vendor description. This is a build-time path traversal in @quasar/app-vite's SSG builder, not a network-facing primitive: the vendor explicitly states that Quasar application configuration and SSG page definitions are trusted input by default, so under normal use this is low real-world risk. It becomes meaningful only when an application derives getSsgPages() definitions from external/untrusted content or when the build configuration itself is compromised - a non-default precondition that sharply narrows the realistic attack surface. No public exploit was identified and there is no CISA KEV listing, consistent with a low-urgency hardening fix rather than active exploitation. The SSG renderer's no-overwrite behavior further caps impact to creation of new files/directories (existing files cannot be clobbered). Net assessment: a legitimate but low-to-moderate priority issue - patch during normal maintenance unless your application feeds untrusted data into SSG page definitions, in which case prioritize it. |
| Exploit ScenarioDerived | An application generates its SSG pages dynamically from an external source (e.g. a headless CMS or user-submitted content) and passes those values into getSsgPages(). An attacker supplies a page definition whose 'dir'/'filename' contains parent-directory traversal (or targets a path under an attacker-planted symlink); when a developer or CI runs 'quasar build -m ssg', the builder joins the values to build.distDir and writes a new HTML file outside the intended output tree with the build user's permissions. No public exploit code is known, though a vendor patch commit exists. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Path traversal in Quasar App Vite 3.1.0 through 3.2.0 allows a local attacker with low privileges (PR:L per the assessed CVSS vector) who can influence SSG page definitions to make quasar build -m ssg create new files or directories outside build.distDir; the assessed vector is CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N. Default deployments are not normally exploitable because Quasar configuration and SSG page definitions are trusted input, and the SSG renderer's no-overwrite behavior limits impact to new files rather than modification of existing files. No KEV status or public exploit was identified at time of analysis, and this is not remotely reachable against a running service; the vendor patch fixes the issue in @quasar/app-vite 3.3.0.
RemediationAI
Vendor-released patch: upgrade @quasar/app-vite to 3.3.0 or later; the fix is associated with commit cdd4daeec839215540221122763c7a17cd478abc, while package data states the fixed version is 3.3.0. If immediate upgrade is not possible, avoid running quasar build -m ssg with untrusted SSG page definitions, validate all dir and filename values as relative paths with no .. and no absolute components, reject destinations that resolve outside the real build.distDir, and ensure no symlinks exist under distDir; these checks must run after resolving symlinks and will not protect builds where configuration is fully attacker-controlled. Additional compensating controls include running builds as a low-privileged user or in an isolated container with a restricted output mount, and treating any externally sourced SSG page input as untrusted; these reduce but do not eliminate the risk of file creation outside the intended output tree and may complicate legitimate SSG builds. See the vendor advisory: https://github.com/quasarframework/quasar/security/advisories/GHSA-vhhq-m2gm-rwc9.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is a CWE-22 path traversal in the Vite-based Quasar CLI SSG build pipeline, implemented in app-vite/lib/modes/ssg/ssg-builder.js. During SSG generation, page definitions returned by getSsgPages() may provide custom dir and filename values; the builder joined those values directly to build.distDir and wrote the generated HTML without confirming that the resolved destination remained inside the distribution directory. Absolute paths, ../ traversal, or a pre-existing symlink beneath distDir could therefore redirect output to a location outside the intended build tree. The vendor fix introduces a getContainedFilePath() utility that resolves the output root, rejects absolute and parent-traversing path segments, rejects destinations that resolve to the output root when a file is expected, and resolves the real path of the root and existing ancestor to detect symlink escapes. The provided CPE is pkg:npm/@quasar_app-vite, and the vulnerable package range is >=3.1.0 <=3.2.0. Because SSG page definitions and Quasar configuration are trusted by default, exploitation requires the application to derive SSG pages from external or otherwise untrusted content, or the build configuration to be compromised; the issue is local/build-time and does not provide a remote file-write primitive against a running service.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:L/AC:H/AT:P/PR:N/UI:A/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N
Build-time only (AV:L); exploitation needs a non-default untrusted-input path plus attacker control over page-definition values (AC:H, PR:L); impact is limited new-file creation with no overwrite, so I:L and C/A:N.
Primary rating from Vendor (https://github.com/quasarframework/quasar).
CVSS VectorVendor: https://github.com/quasarframework/quasar
Lifecycle Timeline
1DescriptionCVE.org
Summary
During an SSG build, page definitions returned by getSsgPages() can provide custom dir and filename values. The builder joined those values to build.distDir and wrote the generated page without verifying that the final destination remained inside the distribution directory.
Details
A page definition containing parent-directory traversal could cause the build to create a new HTML file outside build.distDir. An existing symlink below the distribution directory could also redirect a generated file or newly created directories outside the output tree.
Quasar application configuration and SSG page definitions are trusted input by default, so this is not normally a remote file-write primitive. The issue becomes relevant when an application derives SSG page definitions from external or otherwise untrusted content, or when build configuration is compromised. Existing files are protected by the SSG renderer's no-overwrite behavior, but new files and directories can be created with the permissions of the build user.
Impact
An attacker able to influence an application's SSG page definitions could create files outside the intended build output directory during quasar build -m ssg.
Remediation
Resolve each page destination against the real build.distDir, reject absolute and parent-traversing paths, reject destinations that resolve to the output root where a file is expected, and verify existing ancestors after resolving symlinks.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
EUVD-2026-98736
GHSA-vhhq-m2gm-rwc9
NVD
CVE.org
EPSS
Exploit-DB