Skip to content

Update dependency postcss to v8.5.10 [SECURITY]#27595

Merged
9larsons merged 1 commit into
mainfrom
renovate/npm-postcss-vulnerability
May 25, 2026
Merged

Update dependency postcss to v8.5.10 [SECURITY]#27595
9larsons merged 1 commit into
mainfrom
renovate/npm-postcss-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
postcss (source) 8.5.68.5.10 age confidence

PostCSS line return parsing error

CVE-2023-44270 / GHSA-7fh5-64p2-3v2j

More information

Details

An issue was discovered in PostCSS before 8.4.31. It affects linters using PostCSS to parse external Cascading Style Sheets (CSS). There may be \r discrepancies, as demonstrated by @font-face{ font:(\r/*);} in a rule.

This vulnerability affects linters using PostCSS to parse external untrusted CSS. An attacker can prepare CSS in such a way that it will contains parts parsed by PostCSS as a CSS comment. After processing by PostCSS, it will be included in the PostCSS output in CSS nodes (rules, properties) despite being originally included in a comment.

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


PostCSS has XSS via Unescaped </style> in its CSS Stringify Output

CVE-2026-41305 / GHSA-qx2v-qp2m-jg93

More information

Details

PostCSS: XSS via Unescaped </style> in CSS Stringify Output
Summary

PostCSS v8.5.5 (latest) does not escape </style> sequences when stringifying CSS ASTs. When user-submitted CSS is parsed and re-stringified for embedding in HTML <style> tags, </style> in CSS values breaks out of the style context, enabling XSS.

Proof of Concept
const postcss = require('postcss');

// Parse user CSS and re-stringify for page embedding
const userCSS = 'body { content: "</style><script>alert(1)</script><style>"; }';
const ast = postcss.parse(userCSS);
const output = ast.toResult().css;
const html = `<style>${output}</style>`;

console.log(html);
// <style>body { content: "</style><script>alert(1)</script><style>"; }</style>
//
// Browser: </style> closes the style tag, <script> executes

Tested output (Node.js v22, postcss v8.5.5):

Input: body { content: "</style><script>alert(1)</script><style>"; }
Output: body { content: "</style><script>alert(1)</script><style>"; }
Contains </style>: true
Impact

Impact non-bundler use cases since bundlers for XSS on their own. Requires some PostCSS plugin to have malware code, which can inject XSS to website.

Suggested Fix

Escape </style in all stringified output values:

output = output.replace(/<\/(style)/gi, '<\\/$1');
Credits

Discovered and reported by Sunil Kumar (@​TharVid)

Severity

  • CVSS Score: 6.1 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

postcss/postcss (postcss)

v8.5.10

Compare Source

  • Fixed XSS via unescaped </style> in non-bundler cases (by @​TharVid).

v8.5.9

Compare Source

  • Speed up source map encoding paring in case of the error.

v8.5.8

Compare Source

  • Fixed Processor#version.

v8.5.7

Compare Source

  • Improved source map annotation cleaning performance (by CodeAnt AI).

Configuration

📅 Schedule: (in timezone Etc/UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • Only on Sunday and Saturday (* * * * 0,6)
    • Between 12:00 AM and 12:59 PM, only on Monday (* 0-12 * * 1)
    • Between 10:00 PM and 11:59 PM, Monday through Friday (* 22-23 * * 1-5)
    • Between 12:00 AM and 04:59 AM, Tuesday through Saturday (* 0-4 * * 2-6)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@github-actions github-actions Bot added the dependencies Pull requests that update a dependency file label Apr 27, 2026
@renovate renovate Bot force-pushed the renovate/npm-postcss-vulnerability branch from 5869519 to 606d973 Compare April 29, 2026 09:46
@renovate renovate Bot changed the title Update dependency postcss to v8.5.10 [SECURITY] Update dependency postcss to v8.5.10 [SECURITY] - autoclosed Apr 30, 2026
@renovate renovate Bot closed this Apr 30, 2026
@renovate renovate Bot deleted the renovate/npm-postcss-vulnerability branch April 30, 2026 14:24
@renovate renovate Bot changed the title Update dependency postcss to v8.5.10 [SECURITY] - autoclosed Update dependency postcss to v8.5.10 [SECURITY] Apr 30, 2026
@renovate renovate Bot reopened this Apr 30, 2026
@renovate renovate Bot force-pushed the renovate/npm-postcss-vulnerability branch 2 times, most recently from 606d973 to 67dad19 Compare April 30, 2026 15:33
@renovate renovate Bot changed the title Update dependency postcss to v8.5.10 [SECURITY] Update dependency postcss to v8.5.10 [SECURITY] - autoclosed May 5, 2026
@renovate renovate Bot closed this May 5, 2026
@renovate renovate Bot changed the title Update dependency postcss to v8.5.10 [SECURITY] - autoclosed Update dependency postcss to v8.5.10 [SECURITY] May 5, 2026
@renovate renovate Bot reopened this May 5, 2026
@renovate renovate Bot force-pushed the renovate/npm-postcss-vulnerability branch 3 times, most recently from 0a978cf to 6e9cb84 Compare May 12, 2026 09:30
@codecov

codecov Bot commented May 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 73.83%. Comparing base (12b4709) to head (748bbd2).
⚠️ Report is 5 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #27595   +/-   ##
=======================================
  Coverage   73.83%   73.83%           
=======================================
  Files        1528     1528           
  Lines      129467   129454   -13     
  Branches    15519    15518    -1     
=======================================
- Hits        95586    95578    -8     
- Misses      32895    32914   +19     
+ Partials      986      962   -24     
Flag Coverage Δ
e2e-tests 76.13% <ø> (+2.30%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

9larsons added a commit that referenced this pull request May 13, 2026
no ref

`Check app version bump` fails any PR that changes a file under
`apps/{portal,sodo-search,comments-ui,announcement-bar,signup-form}`
without bumping that app's `version` field. Renovate never bumps app
versions when it updates dependencies, so every dep bump that touches
one of those apps' `package.json` files dies on this check — including
current security PRs (postcss, vite, others).

This change exempts diffs whose only change inside a monitored app is
`package.json`. A human PR that edits both source and `package.json` in
the same app still trips the check, so the cache-busting guarantee for
actual code changes is preserved.

## Test plan

- [ ] Trigger the workflow on this PR — script touches no monitored app
files, so the check should report no app changes detected.
- [ ] Rebase one of the stuck Renovate security PRs (e.g. #27595,
#27354) onto this branch and confirm `Check app version bump` passes.
- [ ] Open a synthetic test PR that edits a source file under
`apps/portal/src` without bumping `apps/portal/package.json` and confirm
the check still fails.
@renovate renovate Bot force-pushed the renovate/npm-postcss-vulnerability branch 2 times, most recently from 09e5efa to 5b3020e Compare May 18, 2026 09:41
9larsons added a commit to 9larsons/Ghost that referenced this pull request May 20, 2026
The vulnerabilityAlerts override already covers the only observed
pain point (PR TryGhost#27595, a postcss SECURITY patch) by rebasing CVE
PRs on every Renovate run. Routine non-security CSS preprocessor
bumps are infrequent enough that the occasional manual rebase
checkbox tick is cheaper than the CI churn this rule would add.
@renovate renovate Bot changed the title Update dependency postcss to v8.5.10 [SECURITY] Update dependency postcss to v8.5.10 [SECURITY] - autoclosed May 23, 2026
@renovate renovate Bot closed this May 23, 2026
@renovate renovate Bot changed the title Update dependency postcss to v8.5.10 [SECURITY] - autoclosed Update dependency postcss to v8.5.10 [SECURITY] May 23, 2026
@renovate renovate Bot reopened this May 23, 2026
@renovate renovate Bot force-pushed the renovate/npm-postcss-vulnerability branch 2 times, most recently from 5b3020e to 06be128 Compare May 23, 2026 14:49
@renovate renovate Bot force-pushed the renovate/npm-postcss-vulnerability branch 4 times, most recently from 44c95d0 to 138ef4e Compare May 25, 2026 16:42
@nx-cloud

nx-cloud Bot commented May 25, 2026

Copy link
Copy Markdown

🤖 Nx Cloud AI Fix

Ensure the fix-ci command is configured to always run in your CI pipeline to get automatic fixes in future runs. For more information, please see https://nx.dev/ci/features/self-healing-ci


View your CI Pipeline Execution ↗ for commit 748bbd2

Command Status Duration Result
nx run ghost:test:ci:integration ✅ Succeeded 2m 6s View ↗
nx run ghost:test:ci:e2e ✅ Succeeded 8m 9s View ↗
nx run @tryghost/admin-x-settings:test:acceptance ✅ Succeeded 8m 47s View ↗
nx build @tryghost/activitypub ✅ Succeeded 59s View ↗
nx run ghost:test:ci:legacy ✅ Succeeded 3m 13s View ↗
nx build @tryghost/sodo-search ✅ Succeeded <1s View ↗
nx build @tryghost/comments-ui ✅ Succeeded <1s View ↗
nx build @tryghost/signup-form ✅ Succeeded <1s View ↗
Additional runs (12) ✅ Succeeded ... View ↗

☁️ Nx Cloud last updated this comment at 2026-05-25 17:25:06 UTC

@renovate renovate Bot force-pushed the renovate/npm-postcss-vulnerability branch from 138ef4e to 748bbd2 Compare May 25, 2026 17:10
@9larsons 9larsons merged commit 1d22b71 into main May 25, 2026
49 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant