Skip to main content

PostCSS CVE-2026-69153

| EUVDEUVD-2026-52373 MEDIUM
Path Traversal (CWE-22)
2026-08-03 GitHub_M GHSA-fxqj-rqcc-2cmp
6.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Attacker embeds malicious sourceMappingURL in crafted CSS
  2. Delivery
    Application passes CSS to postcss().process() without `from` option
  3. Exploit
    PreviousMap.loadFile() receives undefined cssFile, skips traversal guard
  4. Execution
    readFileSync reads attacker-specified .map file from server filesystem
  5. Persist
    Parsed sources and sourcesContent exposed in PostCSS output
  6. Impact
    Attacker retrieves sensitive paths or source file contents from response

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 all of the following to be true simultaneously: (1) the application passes attacker-controlled CSS content to PostCSS for processing - the malicious `/*

sourceMappingURL= */ comment value must be under attacker influence; (2) PostCSS is invoked without the from option (opts.from is undefined, null, or absent), causing cssFile to be falsy and skipping the traversal guard; (3) opts.map is not set to false - if it is, PreviousMap returns early before reaching loadFile(); and (4) the target .map file exists on the server filesystem and contains valid JSON. Exploitation is limited to files with a .map extension - the remaining extension check blocks all other file types. Applications that always provide opts.from, explicitly set opts.map: false`, or never expose PostCSS processing of untrusted input are not exploitable.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N) is consistent with the vulnerability mechanics: unauthenticated network access is required to deliver the malicious CSS, but AT:P flags the specific deployment condition (absence of opts.from) that must hold. Impact is bounded to low confidentiality - only files with a .map extension are readable, limiting the worst-case disclosure to source map files that may contain original source paths and content. No EPSS data is available in the provided intelligence. The existence of a verified PoC (demonstrated against v8.5.22 in GHSA-fxqj-rqcc-2cmp) meaningfully elevates practical risk above what the score alone suggests, particularly for applications that build CSS transformation pipelines from user-supplied input without consistently setting from. The absence of CISA KEV listing suggests no observed mass exploitation at time of analysis. The incomplete-fix nature of this CVE warrants expedited patching for any organization that applied the GHSA-6g55-p6wh-862q fix and assumed the issue was closed.

Exploit ScenarioDerived

An attacker submits a crafted CSS string containing `/*

sourceMappingURL=/var/app/config/secrets.map */ to a web application that accepts user CSS and processes it via postcss([]).process(userInput) without a from option. PostCSS reads the specified file from the server filesystem, and the sources and sourcesContent` fields of the parsed source map are returned in the processed result or passed to downstream application logic, disclosing the file's contents to the attacker. A verified PoC confirming this exact scenario against PostCSS 8.5.22 is included in the GHSA-fxqj-rqcc-2cmp advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 03, 2026

Path traversal in PostCSS npm package (versions through 8.5.22) allows disclosure of arbitrary .map files from the server filesystem when applications process attacker-controlled CSS without the from option. The vulnerability is an incomplete fix bypass of prior advisory GHSA-6g55-p6wh-862q: the traversal guard added to PreviousMap.loadFile() was gated on cssFile being truthy, which is never the case when opts.from is absent. No CISA KEV listing, but a verified proof-of-concept is included in the upstream GHSA advisory GHSA-fxqj-rqcc-2cmp. The CVSS 4.0 score of 6.3 with AT:P correctly reflects the specific deployment condition required.

RemediationAI

Upgrade PostCSS to version 8.5.23 or later, which contains the complete fix (commit 7beca139e70f9075c6b19700fcb00dd8033e5da8 at https://github.com/postcss/postcss/commit/7beca139e70f9075c6b19700fcb00dd8033e5da8). The fix unconditionally returns undefined from loadFile() when cssFile is absent, closing the guard bypass regardless of opts.from. Note: the CVE description cites 8.5.19 as the fix version but this is incorrect for this CVE - 8.5.19 fixed the prior advisory GHSA-6g55-p6wh-862q; treat 8.5.23 as the minimum safe version. Where immediate upgrade is not possible, always pass the from option in every PostCSS invocation: postcss([]).process(css, { from: '/absolute/path/to/source.css' }) - this re-enables the traversal guard as a compensating control. The trade-off is that from must reflect a real trusted path; using a fake path may cause source map resolution to fail silently. Additionally, restrict PostCSS pipelines from accepting untrusted CSS input at the application boundary if feasible.

Affected VersionsENISA

postcss < 8.5.19

Affected Packages

npm postcss fix: 8.5.19, 8.5.23

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in npm

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

PostCSS (CPE: cpe:2.3:a:postcss:postcss:*:*:*:*:*:*:*:*) is a widely used Node.js CSS transformation library. When processing CSS, lib/input.js constructs a PreviousMap instance that parses inline `/*

sourceMappingURL=... */ annotations to load external source maps via readFileSync. The prior fix for GHSA-6g55-p6wh-862q added guards in loadFile() rejecting absolute paths and .. traversal sequences - but those checks were nested inside if (cssFile) { ... }, where cssFile is derived from opts.from. When PostCSS is invoked without from (e.g., postcss([]).process(css)), cssFile is undefined, the branch is skipped, and only the .map extension filter remains (CWE-22: Improper Limitation of a Pathname to a Restricted Directory). An attacker embedding /*

sourceMappingURL=/absolute/path/secret.map */ or a ../-traversing relative URL in CSS causes PostCSS to read the target file and expose its sources (filesystem paths) and sourcesContent` fields in the processed output.

Know when Postcss gets its next vulnerability

  • 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

Vendor (GitHub_M) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

AC:H reflects the specific deployment condition (from unset) required; C:L for .map-only file disclosure; no integrity or availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
SUSE 5.3 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Red Hat 7.5 HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 03, 2026 - 18:02 EUVD
CVE Published
Aug 03, 2026 - 16:56 cve.org
MEDIUM 6.3

DescriptionCVE.org

PostCSS takes a CSS file and provides an API to analyze and modify its rules by transforming the rules into an Abstract Syntax Tree. Prior to 8.5.19, if from is unset, an attacker can cause PreviousMap.loadFile() to read an unintended source-map file by supplying an absolute or directory-traversal sourceMappingURL. The resulting map’s sources and sourcesContent may then be exposed to the application. This issue is fixed in version 8.5.19.

Threat Intelligence Overview

EPSS Score
0.4%
Top 72% exploitable
Prevalence
High
PostCSS is a core CSS toolchain dependency in most modern frontend build pipelines
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA MSRC Vendor CIRCL GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

52
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 12 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy