CVE-2026-45623
Received Received - Intake

PostCSS File Read and DoS via Untrusted CSS Input

Vulnerability report for CVE-2026-45623, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-07-27

Last updated on: 2026-07-27

Assigner: GitHub, Inc.

Description

PostCSS takes a CSS file and provides an API to analyze and modify its rules by transforming the rules into an Abstract Syntax Tree. In versions 8.5.11 and prior, the PreviousMap parses the /*# sourceMappingURL=PATH */ comment from any CSS string passed to process() and dereferences PATH against the local filesystem with no scheme, allowlist, or traversal check. An attacker who controls the CSS input can cause the host process to read any file readable by Node and leak the first ~10 bytes of its content through the resulting JSON.parse SyntaxError message. The bug also yields a precise file-existence oracle and a controllable-read primitive that may be combined with large-file targets for DoS. The behaviour is triggered with PostCSS's default options β€” no from, no map, no plugins required β€” and is therefore reachable from any pipeline that runs untrusted CSS through PostCSS (CMS themes, user-uploaded styles, browser-extension/userstyle processors, build pipelines for third-party packages, blog comment renderers, etc.). This issue has been fixed in version 8.5.12.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-07-27
Last Modified
2026-07-27
Generated
2026-07-27
AI Q&A
2026-07-27
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
postcss postcss to 8.5.12 (exc)
postcss postcss 8.5.12

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-200 The product exposes sensitive information to an actor that is not explicitly authorized to have access to that information.
CWE-22 The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

PostCSS versions 8.5.11 and prior have a vulnerability where the PreviousMap feature parses the sourceMappingURL comment from CSS input and dereferences the path against the local filesystem without proper checks. An attacker can exploit this to read any file readable by Node.js and leak its first ~10 bytes via a JSON.parse error message. The issue is triggered by default options and requires no additional plugins or configuration.

Detection Guidance

Detecting this vulnerability requires checking if PostCSS versions 8.5.11 or earlier are installed. Run: npm list postcss or npm ls postcss. If the version is <=8.5.11, the system is vulnerable.

Impact Analysis

This vulnerability allows an attacker to read sensitive files on your system if you process untrusted CSS through PostCSS. It can leak file contents, reveal file existence, and potentially enable denial-of-service attacks by reading large files. Any system using PostCSS to process user-uploaded or untrusted CSS is at risk.

Compliance Impact

This vulnerability could lead to unauthorized data exposure, violating GDPR's data protection principles or HIPAA's confidentiality requirements. If sensitive personal or health data is leaked, it may result in compliance breaches, legal penalties, and reputational damage for organizations.

Mitigation Strategies

Upgrade PostCSS to version 8.5.12 or later immediately. Use: npm install postcss@latest. Review any pipelines processing untrusted CSS to ensure they use the updated version.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-45623. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart