Every CVE Search/ Get API key

CVE-2026-45623

PostCSS: Arbitrary file read and information disclosure via attacker-controlled sourceMappingURL in CSS comments

7.5 HighFix available

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.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
None
Availability
None

Exploit likelihood

0.61%Up 0.1 points since Jul 28, 2026
90%50%10%1%

What each source reports

CVE List Score used 7.5

PostCSS: Arbitrary file read and information disclosure via attacker-controlled sourceMappingURL in CSS comments

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.

Record
CVE-2026-45623
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-22, CWE-200
Updated
2026-11-02
EUVDEUVD-2026-49376 7.5

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.

Record
EUVD-2026-49376
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-6g55-p6wh-862q 7.5

PostCSS: Arbitrary file read and information disclosure via attacker-controlled sourceMappingURL in CSS comments

Summary

PostCSS's 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.).

Details

The dangerous chain lives in lib/previous-map.js and is wired into every Input construction at lib/input.js:70-77.

Input constructor (lib/input.js:70-77):

if (pathAvailable && sourceMapAvailable) {
  let map = new PreviousMap(this.css, opts)
  if (map.text) {
    this.map = map
    let file = map.consumer().file
    if (!this.file && file) this.file = this.mapResolve(file)
  }
}

PreviousMap constructor (lib/previous-map.js:17-29):

constructor(css, opts) {
  if (opts.map === false) return
  this.loadAnnotation(css)
  this.inline = this.startWith(this.annotation, 'data:')

  let prev = opts.map ? opts.map.prev : undefined
  let text = this.loadMap(opts.from, prev)
  ...
}

Note opts.map === false is the only short-circuit. With default options (opts.map === undefined), the rest of the constructor — including the filesystem read — executes.

loadAnnotation (lib/previous-map.js:72-84) extracts the URL without sanitisation:

loadAnnotation(css) {
  let comments = css.match(/\/\*\s*# sourceMappingURL=/g)
  if (!comments) return
  let start = css.lastIndexOf(comments.pop())
  let end = css.indexOf('*/', start)
  if (start > -1 && end > -1) {
    this.annotation = this.getAnnotationURL(css.substring(start, end))
  }
}

getAnnotationURL (lib/previous-map.js:59-61) only strips the /*# sourceMappingURL= prefix and trims whitespace — no scheme check, no path normalisation, no allowlist.

loadMap (lib/previous-map.js:124-128) — when prev is absent and the annotation is not an inline data: URI:

} else if (this.annotation) {
  let map = this.annotation
  if (file) map = join(dirname(file), map)
  return this.loadFile(map)
}
  • If opts.from is unset, file is undefined and the raw attacker-supplied path (e.g. /etc/passwd) is used directly.
  • If opts.from is set, path.join(dirname(file), attackerPath) is used. path.join does not block .. segments, so ../../../../../etc/passwd resolves outside the intended directory.

loadFile (lib/previous-map.js:86-92) is the sink:

loadFile(path) {
  this.root = dirname(path)
  if (existsSync(path)) {
    this.mapFile = path
    return readFileSync(path, 'utf-8').toString().trim()
  }
}

The bytes are stored in this.text. Input immediately invokes map.consumer() (lib/input.js:74), which constructs a SourceMapConsumer (lib/previous-map.js:33). When the file is not valid source-map JSON (the common case), source-map-js calls JSON.parse, and V8's SyntaxError message embeds the first ~10 bytes of the file content:

Unexpected token 'r', "root:x:0:0"... is not valid JSON

This error is propagated back to the caller. Any application that surfaces PostCSS errors (logs, HTTP 500 responses, build-tool output, debug pages) discloses those bytes to the attacker.

Trust-boundary analysis:

  • Attacker controls: CSS input passed to postcss().process(css, opts?).
  • Server resources: any file readable by the Node process — typically including app config, environment…
Record
GHSA-6g55-p6wh-862q
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-22, CWE-200
Updated
2026-11-02
NVD 7.5

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.

Record
CVE-2026-45623
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Weakness
CWE-22, CWE-200
Updated
2026-11-02
OSV 7.5

PostCSS: Arbitrary file read and information disclosure via attacker-controlled sourceMappingURL in CSS comments

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.

Record
CVE-2026-45623
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-200, CWE-22
Updated
2026-11-02
OSVDEBIAN-CVE-2026-45623 9.1

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.

Record
DEBIAN-CVE-2026-45623
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Updated
2026-11-02
Show 25 moreShow less
OSVGHSA-6g55-p6wh-862q 7.5

PostCSS: Arbitrary file read and information disclosure via attacker-controlled sourceMappingURL in CSS comments

Summary

PostCSS's 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.).

Details

The dangerous chain lives in lib/previous-map.js and is wired into every Input construction at lib/input.js:70-77.

Input constructor (lib/input.js:70-77):

if (pathAvailable && sourceMapAvailable) {
  let map = new PreviousMap(this.css, opts)
  if (map.text) {
    this.map = map
    let file = map.consumer().file
    if (!this.file && file) this.file = this.mapResolve(file)
  }
}

PreviousMap constructor (lib/previous-map.js:17-29):

constructor(css, opts) {
  if (opts.map === false) return
  this.loadAnnotation(css)
  this.inline = this.startWith(this.annotation, 'data:')

  let prev = opts.map ? opts.map.prev : undefined
  let text = this.loadMap(opts.from, prev)
  ...
}

Note opts.map === false is the only short-circuit. With default options (opts.map === undefined), the rest of the constructor — including the filesystem read — executes.

loadAnnotation (lib/previous-map.js:72-84) extracts the URL without sanitisation:

loadAnnotation(css) {
  let comments = css.match(/\/\*\s*# sourceMappingURL=/g)
  if (!comments) return
  let start = css.lastIndexOf(comments.pop())
  let end = css.indexOf('*/', start)
  if (start > -1 && end > -1) {
    this.annotation = this.getAnnotationURL(css.substring(start, end))
  }
}

getAnnotationURL (lib/previous-map.js:59-61) only strips the /*# sourceMappingURL= prefix and trims whitespace — no scheme check, no path normalisation, no allowlist.

loadMap (lib/previous-map.js:124-128) — when prev is absent and the annotation is not an inline data: URI:

} else if (this.annotation) {
  let map = this.annotation
  if (file) map = join(dirname(file), map)
  return this.loadFile(map)
}
  • If opts.from is unset, file is undefined and the raw attacker-supplied path (e.g. /etc/passwd) is used directly.
  • If opts.from is set, path.join(dirname(file), attackerPath) is used. path.join does not block .. segments, so ../../../../../etc/passwd resolves outside the intended directory.

loadFile (lib/previous-map.js:86-92) is the sink:

loadFile(path) {
  this.root = dirname(path)
  if (existsSync(path)) {
    this.mapFile = path
    return readFileSync(path, 'utf-8').toString().trim()
  }
}

The bytes are stored in this.text. Input immediately invokes map.consumer() (lib/input.js:74), which constructs a SourceMapConsumer (lib/previous-map.js:33). When the file is not valid source-map JSON (the common case), source-map-js calls JSON.parse, and V8's SyntaxError message embeds the first ~10 bytes of the file content:

Unexpected token 'r', "root:x:0:0"... is not valid JSON

This error is propagated back to the caller. Any application that surfaces PostCSS errors (logs, HTTP 500 responses, build-tool output, debug pages) discloses those bytes to the attacker.

Trust-boundary analysis:

  • Attacker controls: CSS input passed to postcss().process(css, opts?).
  • Server resources: any file readable by the Node process — typically including app config, environment…
Record
GHSA-6g55-p6wh-862q
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-200, CWE-22
Updated
2026-11-02
OSVRHSA-2026:57590 8.6

Red Hat Security Advisory: rh-podman-desktop security, bug fix, and enhancement update

Record
RHSA-2026:57590
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Updated
2026-11-02
OSVRHSA-2026:74503 9.1

Red Hat Security Advisory: Satellite 6.19.5 Async Update

Record
RHSA-2026:74503
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L
Updated
2026-11-02
OSVUBUNTU-CVE-2026-45623 7.5

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.

Record
UBUNTU-CVE-2026-45623
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
CVSS 3.1
9.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
Updated
2026-11-02
OSVCLSA-2026-1784856189 No score

TuxCare security update for postcss (1 CVE)

TuxCare rebuilt postcss to address 1 CVE. Fixed in 8.5.6-tuxcare.2.

Record
CLSA-2026-1784856189
Updated
2026-11-02
OSVCLSA-2026-1784856448 No score

TuxCare security update for postcss (1 CVE)

TuxCare rebuilt postcss to address 1 CVE. Fixed in 8.4.41-tuxcare.3.

Record
CLSA-2026-1784856448
Updated
2026-11-02
OSVCLSA-2026-1784943201 No score

TuxCare security update for postcss (1 CVE)

TuxCare rebuilt postcss to address 1 CVE. Fixed in 8.4.31-tuxcare.2.

Record
CLSA-2026-1784943201
Updated
2026-11-02
OSVCLSA-2026-1784943315 No score

TuxCare security update for postcss (2 CVEs)

TuxCare rebuilt postcss to address 2 CVEs. Fixed in 8.4.14-tuxcare.3.

Record
CLSA-2026-1784943315
Updated
2026-11-02
OSVCLSA-2026-1785117457 No score

TuxCare security update for postcss (1 CVE)

TuxCare rebuilt postcss to address 1 CVE. Fixed in 8.3.6-tuxcare.3.

Record
CLSA-2026-1785117457
Updated
2026-11-02
OSVCLSA-2026-1785117465 No score

TuxCare security update for postcss (1 CVE)

TuxCare rebuilt postcss to address 1 CVE. Fixed in 8.2.15-tuxcare.2.

Record
CLSA-2026-1785117465
Updated
2026-11-02
OSVCLSA-2026-1785204444 No score

TuxCare security update for postcss (1 CVE)

TuxCare rebuilt postcss to address 1 CVE. Fixed in 8.2.13-tuxcare.1.

Record
CLSA-2026-1785204444
Updated
2026-11-02
OSVCLSA-2026-1785204576 No score

TuxCare security update for postcss (1 CVE)

TuxCare rebuilt postcss to address 1 CVE. Fixed in 8.4.5-tuxcare.2.

Record
CLSA-2026-1785204576
Updated
2026-11-02
OSVCLSA-2026-1785291205 No score

TuxCare security update for postcss (1 CVE)

TuxCare rebuilt postcss to address 1 CVE. Fixed in 7.0.39-tuxcare.4.

Record
CLSA-2026-1785291205
Updated
2026-11-02
OSVCLSA-2026-1790190302 No score

TuxCare security update for postcss (1 CVE)

TuxCare rebuilt postcss to address 1 CVE. Fixed in 8.5.3-tuxcare.1.

Record
CLSA-2026-1790190302
Updated
2026-11-02
OSVCLSA-2026-1790200920 No score

TuxCare security update for postcss (1 CVE)

TuxCare rebuilt postcss to address 1 CVE. Fixed in 8.5.2-tuxcare.1.

Record
CLSA-2026-1790200920
Updated
2026-11-02
OSVCLSA-2026-1790604941 No score

TuxCare security update for postcss (6 CVEs)

TuxCare rebuilt postcss to address 6 CVEs. Fixed in 6.0.1-tuxcare.1.

Record
CLSA-2026-1790604941
Updated
2026-11-02
OSVCLSA-2026-1791633202 No score

TuxCare security update for postcss (4 CVEs)

TuxCare rebuilt postcss to address 4 CVEs. Fixed in 8.4.49-tuxcare.1.

Record
CLSA-2026-1791633202
Updated
2026-11-02
OSVCLSA-2026-1792160907 No score

TuxCare security update for postcss (3 CVEs)

TuxCare rebuilt postcss to address 3 CVEs. Fixed in 6.0.23-tuxcare.1.

Record
CLSA-2026-1792160907
Updated
2026-11-02
OSVCLSA-2026-1792164187 No score

TuxCare security update for postcss (2 CVEs)

TuxCare rebuilt postcss to address 2 CVEs. Fixed in 8.4.33-tuxcare.1.

Record
CLSA-2026-1792164187
Updated
2026-11-02
OSVCLSA-2026-1792164288 No score

TuxCare security update for postcss (3 CVEs)

TuxCare rebuilt postcss to address 3 CVEs. Fixed in 8.4.17-tuxcare.1.

Record
CLSA-2026-1792164288
Updated
2026-11-02
OSVCLSA-2026-1792164377 No score

TuxCare security update for postcss (1 CVE)

TuxCare rebuilt postcss to address 1 CVE. Fixed in 8.5.5-tuxcare.1.

Record
CLSA-2026-1792164377
Updated
2026-11-02
OSVCLSA-2026-1792164471 No score

TuxCare security update for postcss (3 CVEs)

TuxCare rebuilt postcss to address 3 CVEs. Fixed in 8.2.9-tuxcare.1.

Record
CLSA-2026-1792164471
Updated
2026-11-02
OSVCLSA-2026-1792765790 No score

TuxCare security update for postcss (3 CVEs)

TuxCare rebuilt postcss to address 3 CVEs. Fixed in 8.4.35-tuxcare.1.

Record
CLSA-2026-1792765790
Updated
2026-11-02
OSVopenSUSE-SU-2026:12070-1 No score

velociraptor-0.76.7.0.git145.b60ef1146-1.1 on GA media

These are all security issues fixed in the velociraptor-0.76.7.0.git145.b60ef1146-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:12070-1
Updated
2026-11-02
OSVROOT-APP-NPM-CVE-2026-45623 No score

CVE-2026-45623 in postcss - Patched by Root

Root has patched CVE-2026-45623 in the postcss package for Root:npm. Multiple fixed versions available.

Record
ROOT-APP-NPM-CVE-2026-45623
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
postcss
npm
through 8.5.11
8.5.12
postcss
TuxCare:npm
8.5.6-tuxcare.0 up to 8.5.6-tuxcare.2, plus listed versions
8.5.68.5.6-tuxcare.1
8.5.6-tuxcare.2
postcss
TuxCare:npm
8.4.41-tuxcare.0 up to 8.4.41-tuxcare.3, plus listed versions
8.4.418.4.41-tuxcare.18.4.41-tuxcare.2
8.4.41-tuxcare.3
postcss
TuxCare:npm
8.4.31-tuxcare.0 up to 8.4.31-tuxcare.2, plus listed versions
8.4.318.4.31-tuxcare.1
8.4.31-tuxcare.2
postcss
TuxCare:npm
From an advisory covering 2 CVEs
8.4.14-tuxcare.0 up to 8.4.14-tuxcare.3, plus listed versions
8.4.148.4.14-tuxcare.18.4.14-tuxcare.2
8.4.14-tuxcare.3
postcss
TuxCare:npm
8.3.6-tuxcare.0 up to 8.3.6-tuxcare.3, plus listed versions
8.3.68.3.6-tuxcare.18.3.6-tuxcare.2
8.3.6-tuxcare.3
postcss
TuxCare:npm
8.2.15-tuxcare.0 up to 8.2.15-tuxcare.2, plus listed versions
8.2.158.2.15-tuxcare.1
8.2.15-tuxcare.2
postcss
TuxCare:npm
8.2.13-tuxcare.0 up to 8.2.13-tuxcare.1, plus listed versions
8.2.13
8.2.13-tuxcare.1
postcss
TuxCare:npm
8.4.5-tuxcare.0 up to 8.4.5-tuxcare.2, plus listed versions
8.4.58.4.5-tuxcare.1
8.4.5-tuxcare.2
postcss
TuxCare:npm
7.0.39-tuxcare.0 up to 7.0.39-tuxcare.4, plus listed versions
7.0.397.0.39-tuxcare.17.0.39-tuxcare.27.0.39-tuxcare.3
7.0.39-tuxcare.4
Show 54 moreShow less
Affected packages
PackageAffectedFixed
postcss
TuxCare:npm
8.5.3-tuxcare.0 up to 8.5.3-tuxcare.1, plus listed versions
8.5.3
8.5.3-tuxcare.1
postcss
TuxCare:npm
8.5.2-tuxcare.0 up to 8.5.2-tuxcare.1, plus listed versions
8.5.2
8.5.2-tuxcare.1
postcss
TuxCare:npm
From an advisory covering 6 CVEs
6.0.1-tuxcare.0 up to 6.0.1-tuxcare.1, plus listed versions
6.0.1
6.0.1-tuxcare.1
postcss
TuxCare:npm
From an advisory covering 4 CVEs
8.4.49-tuxcare.0 up to 8.4.49-tuxcare.1, plus listed versions
8.4.49
8.4.49-tuxcare.1
postcss
TuxCare:npm
From an advisory covering 3 CVEs
6.0.23-tuxcare.0 up to 6.0.23-tuxcare.1, plus listed versions
6.0.23
6.0.23-tuxcare.1
postcss
TuxCare:npm
From an advisory covering 2 CVEs
8.4.33-tuxcare.0 up to 8.4.33-tuxcare.1, plus listed versions
8.4.33
8.4.33-tuxcare.1
postcss
TuxCare:npm
From an advisory covering 3 CVEs
8.4.17-tuxcare.0 up to 8.4.17-tuxcare.1, plus listed versions
8.4.17
8.4.17-tuxcare.1
postcss
TuxCare:npm
8.5.5-tuxcare.0 up to 8.5.5-tuxcare.1, plus listed versions
8.5.5
8.5.5-tuxcare.1
postcss
TuxCare:npm
From an advisory covering 3 CVEs
8.2.9-tuxcare.0 up to 8.2.9-tuxcare.1, plus listed versions
8.2.9
8.2.9-tuxcare.1
postcss
TuxCare:npm
From an advisory covering 3 CVEs
8.4.35-tuxcare.0 up to 8.4.35-tuxcare.1, plus listed versions
8.4.35
8.4.35-tuxcare.1
node-postcss
Debian:12
All versions, plus listed versions
8.4.20+~cs8.0.23-18.4.20+~cs8.0.23-1+deb12u18.4.31+~cs8.0.26-18.4.39+~cs9.2.29-18.4.49+~cs9.2.32-1
Show 14 moreShow less
8.5.12+~cs9.3.32-18.5.14+~cs9.3.34-18.5.15+~cs9.3.34-18.5.15+~cs9.3.38-18.5.15+~cs9.3.39-18.5.19+~cs10.2.23-18.5.21+~cs10.2.23-18.5.23+~cs10.2.23-18.5.25+~cs10.2.23-18.5.26+~cs10.2.24-18.5.28+~cs10.2.24-18.5.6+~cs9.3.28-18.5.8+~cs9.3.30-18.5.9+~cs9.3.30-1
None known
node-postcss
Debian:13
All versions, plus listed versions
8.4.49+~cs9.2.32-18.5.12+~cs9.3.32-18.5.14+~cs9.3.34-18.5.15+~cs9.3.34-18.5.15+~cs9.3.38-1
Show 10 moreShow less
8.5.15+~cs9.3.39-18.5.19+~cs10.2.23-18.5.21+~cs10.2.23-18.5.23+~cs10.2.23-18.5.25+~cs10.2.23-18.5.26+~cs10.2.24-18.5.28+~cs10.2.24-18.5.6+~cs9.3.28-18.5.8+~cs9.3.30-18.5.9+~cs9.3.30-1
None known
node-postcss
Debian:14
before 8.5.12+~cs9.3.32-1, plus listed versions
8.4.49+~cs9.2.32-18.5.6+~cs9.3.28-18.5.8+~cs9.3.30-18.5.9+~cs9.3.30-1
8.5.12+~cs9.3.32-1
postcss
npm
before 8.5.12
8.5.12
rh-podman-desktop
Red Hat:enterprise_linux:10.2
From an advisory covering 24 CVEs
before 0:1.1.2-1.el10_2
0:1.1.2-1.el10_2
rubygem-foreman_remote_execution
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:16.5.3-2.el9sat
0:16.5.3-2.el9sat
rubygem-foreman_remote_execution-cockpit
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:16.5.3-2.el9sat
0:16.5.3-2.el9sat
foreman
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-debug
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-pcp
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman
Red Hat:satellite_utils:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-cli
Red Hat:satellite_utils:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-cli
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-debug
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-dynflow-sidekiq
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-ec2
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-journald
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-libvirt
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-openstack
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-pcp
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-postgresql
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-redis
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-service
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-telemetry
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
foreman-vmware
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0.14-1.el9sat
0:3.18.0.14-1.el9sat
rubygem-hammer_cli
Red Hat:satellite_utils:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0-2.el9sat
0:3.18.0-2.el9sat
rubygem-hammer_cli
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.18.0-2.el9sat
0:3.18.0-2.el9sat
python3.12-dynaconf
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:3.2.13-2.el9pc
0:3.2.13-2.el9pc
python3.12-dynaconf
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.2.13-2.el9pc
0:3.2.13-2.el9pc
yggdrasil-worker-forwarder
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:0.1.0-2.1.el9sat
0:0.1.0-2.1.el9sat
python3.12-sqlparse
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:0.6.0-1.el9pc
0:0.6.0-1.el9pc
python3.12-sqlparse
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:0.6.0-1.el9pc
0:0.6.0-1.el9pc
rubygem-katello
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:4.20.0.11-1.el9sat
0:4.20.0.11-1.el9sat
python3.12-gitpython
Red Hat:satellite_capsule:6.19::el9
From an advisory covering 31 CVEs
before 0:3.1.62-1.el9pc
0:3.1.62-1.el9pc
python3.12-gitpython
Red Hat:satellite:6.19::el9
From an advisory covering 31 CVEs
before 0:3.1.62-1.el9pc
0:3.1.62-1.el9pc
postcss
Root:npm
before 8.4.49-aikido.4
8.4.49-aikido.46.0.1-aikido.28.4.38-aikido.28.5.3-aikido.38.4.21-aikido.27.0.39-aikido.58.5.8-aikido.38.5.8-aikido.48.4.31-aikido.28.5.9-aikido.27.0.39-aikido.65.2.18-aikido.48.5.3-aikido.28.5.9-aikido.38.5.6-aikido.48.4.49-aikido.28.4.49-aikido.38.4.38-aikido.18.4.21-aikido.17.0.39-aikido.78.5.8-aikido.56.0.1-aikido.15.2.18-aikido.56.0.23-aikido.27.0.32-aikido.18.4.32-aikido.17.0.36-aikido.18.5.6-aikido.56.0.23-aikido.38.4.31-aikido.4
@rootio/postcss
Root:npm
before 8.4.49-root.io.4
8.4.49-root.io.46.0.1-root.io.28.4.38-root.io.28.5.3-root.io.38.4.21-root.io.28.4.49-root.io.27.0.39-root.io.58.5.8-root.io.38.5.8-root.io.48.4.31-root.io.28.5.9-root.io.27.0.39-root.io.65.2.18-root.io.48.5.3-root.io.28.5.9-root.io.38.5.6-root.io.48.4.49-root.io.38.4.38-root.io.18.4.21-root.io.17.0.39-root.io.78.5.8-root.io.56.0.1-root.io.15.2.18-root.io.56.0.23-root.io.27.0.32-root.io.18.4.32-root.io.17.0.36-root.io.18.5.6-root.io.56.0.23-root.io.38.4.31-root.io.4
node-postcss
Ubuntu:20.04:LTS
All versions, plus listed versions
6.0.23-16.0.23-3
None known
node-postcss
Ubuntu:22.04:LTS
All versions, plus listed versions
8.2.1+~cs5.3.23-88.4.5+~cs7.1.51-28.4.6+~cs7.3.21-1
None known
node-postcss
Ubuntu:24.04:LTS
All versions, plus listed versions
8.4.20+~cs8.0.23-18.4.31+~cs8.0.26-1
None known
node-postcss
Ubuntu:26.10
All versions, plus listed versions
8.5.8+~cs9.3.30-18.5.15+~cs9.3.34-18.5.15+~cs9.3.38-18.5.15+~cs9.3.39-1build18.5.25+~cs10.2.23-18.5.26+~cs10.2.24-1
None known
node-postcss
Ubuntu:26.04:LTS
All versions, plus listed versions
8.5.6+~cs9.3.28-18.5.8+~cs9.3.30-1
None known
velociraptor
openSUSE:Tumbleweed
From an advisory covering 40 CVEs
before 0.76.7.0.git145.b60ef1146-1.1
0.76.7.0.git145.b60ef1146-1.1

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-45623 is a high vulnerability (CVSS 7.5) in Postcss, published July 23, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.61%, the 49th percentile. Fixed in postcss 8.5.12.

References

Show 194 moreShow less
This page doesn't list everything

Left out here: 193 references and the rest of 2 source descriptions. The JSON record has them.

MoveEnter Open