CVE-2026-106108
5.7MediumPublished 13 Oct 2026 · NVD status: Deferred · AI triage by gemini-3.8-flash
- Attack vector
- Local
- Complexity
- High
- Privileges needed
- None
- User interaction
- Active
- Impact
- High impact on integrity
- Weakness
- CWE-22
Impact
Attackers can write arbitrary HTML files outside the intended build directory using the build user's permissions. This requires a build pipeline that generates SSG page definitions or paths from untrusted external input.
Root cause
The SSG generator joins getSsgPages() dir and filename values directly to build.distDir without validating whether the resolved target path escapes the output directory.
Affected systems
@quasar/app-vite versions 3.1.0 through 3.2.x (fixed in 3.3.0)
CVSS v4.0 · 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Fix & remediation
Upgrade @quasar/app-vite to version 3.3.0 or higher. If patching immediately is not possible, sanitize getSsgPages() return values in your quasar configuration to strip directory traversal sequences like '..'.
$ npm install @quasar/app-vite@^3.3.0AI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
Quasar Framework is a framework for building high-performance Vue.js user interfaces. From 3.1.0 until 3.3.0, @quasar/app-vite SSG page definitions returned by getSsgPages() could supply dir and filename values that were joined to build.distDir without verifying the final destination. Parent traversal or an existing symlink below the distribution directory could create new HTML files or directories outside the output tree with the build user's permissions. Application configuration and SSG page definitions are trusted by default, so exploitation requires a build process that derives them from external or otherwise less-trusted content; existing files remain protected by the renderer's no-overwrite behavior. This issue is fixed in version 3.3.0.