Update dependency postcss to v8.4.31 [SECURITY] #961
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
8.2.13
->8.4.31
GitHub Vulnerability Alerts
CVE-2021-23368
The npm package
postcss
from 7.0.0 and before versions 7.0.36 and 8.2.10 is vulnerable to Regular Expression Denial of Service (ReDoS) during source map parsing.CVE-2021-23382
The package postcss versions before 7.0.36 or between 8.0.0 and 8.2.13 are vulnerable to Regular Expression Denial of Service (ReDoS) via getAnnotationURL() and loadAnnotation() in lib/previous-map.js. The vulnerable regexes are caused mainly by the sub-pattern
PoC
CVE-2023-44270
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.
Release Notes
postcss/postcss (postcss)
v8.4.31
Compare Source
\r
parsing to fix CVE-2023-44270.v8.4.30
Compare Source
v8.4.29
Compare Source
Node#source.offset
(by Ido Rosenthal).v8.4.28
Compare Source
Root.source.end
for better source map (by Romain Menke).Result.root
types whenprocess()
has no parser.v8.4.27
Compare Source
Container
clone methods types.v8.4.26
Compare Source
v8.4.25
Compare Source
v8.4.24
Compare Source
Plugin
types.v8.4.23
Compare Source
v8.4.22
Compare Source
node16
(by Remco Haszing).v8.4.21
Compare Source
Input#error
types (by Aleks Hudochenkov).v8.4.20
Compare Source
@layer
.v8.4.19
Compare Source
v8.4.18
Compare Source
absolute: true
with emptysourceContent
(by Rene Haas).v8.4.17
Compare Source
Node.before()
unexpected behavior (by Romain Menke).v8.4.16
Compare Source
Root
AST migration.v8.4.15
Compare Source
v8.4.14
Compare Source
v8.4.13
Compare Source
append()
error after using.parent
(by Jordan Pittman).v8.4.12
Compare Source
package.funding
to have same value between all PostCSS packages.v8.4.11
Compare Source
Declaration#raws.value
type.v8.4.10
Compare Source
package.funding
URL format.v8.4.9
Compare Source
package.funding
(by Álvaro Mondéjar).v8.4.8
Compare Source
v8.4.7
Compare Source
Node#warn()
type (by Masafumi Koba).,
.v8.4.6
Compare Source
.root
access for plugin-less case.v8.4.5
Compare Source
raws
types to make object extendable (by James Garbutt).v8.4.4
Compare Source
v8.4.3
Compare Source
this.css.replace is not a function
error.v8.4.2
Compare Source
Node#source.offset
(by Ido Rosenthal).v8.4.1
Compare Source
v8.4.0
: 8.4 “President Camio”Compare Source
PostCSS 8.4 brought ranges for warnings and errors, smaller
node_modules
size, lazy parsing to avoidPostCSS does nothing
warning, and TypeScript fixes.Thanks to Sponsors
This release was possible thanks to our community.
If your company wants to support the sustainability of front-end infrastructure or wants to give some love to PostCSS, you can join our supporters by:
Rages for Errors and Warnings
@adalinesimonian, the author of amazing Stylelint extension for VS Code, added ranges to errors and warnings.
It will improve DX in the IDE extension.
Lazy Parsing
Previously, we found that many tools run PostCSS even if the developer didn’t pass any PostCSS plugins. Parsing is the most expensive step in CSS processing. It led to a waste of resources without any reason.
We tried to resolve the problem by adding a
PostCSS does nothing
warning. But it didn’t force tool authors to be more careful with user’s resources.If PostCSS sees that tool call it without passing plugins (or changing parser/stringifier), PostCSS will not parse CSS (until toll will call
Result#root
). In 8.4, @bogdan0083 (with the help of @WilhelmYakunin) tries to solve the problem in another way. It allows us to save resources and remove thePostCSS does nothing
warning.Install Size Reduction
With ≈60M weekly downloads, PostCSS has responsibility for the world’s resource spending.
Together with @7rulnik we reduced
source-map-js
size. It is transitive dependency of PostCSS.In 8.4, we moved to a fixed version of
source-map-js
, which reduced thepostcss
size in yournode_modules
from ≈1 MB to 0.3 MB. With the huge popularity of PostCSS, it will free a lot of resources on our CIs.Migration from Jest to
uvu
@kimoofey refactored all tests from the popular Jest framework to small and fast
uvu
.It will not affect end-users. However, it reduced our
node_modules
size by 33 MB and made tests twice faster (yarn install & yarn unit
: 24 → 13 seconds).TypeScript Fixes
Processor
types.Stringifier
types (by @43081j).Root
andDocument
in result values (by @43081j).Node#walkRules()
types (by @hudochenkov).Other Changes
v8.3.11
Compare Source
v8.3.10
Compare Source
Maximum call stack
issue of some source maps (by Yeting Li).v8.3.9
Compare Source
nanocolors
topicocolors
.v8.3.8
Compare Source
nanocolors
.v8.3.7
Compare Source
colorette
tonanocolors
.package.json
(by Christian Oliff).v8.3.6
Compare Source
missed semicolon
error (by @Gusted).v8.3.5
Compare Source
v8.3.4
Compare Source
v8.3.3
Compare Source
postcss
dependency duplication in custom parsers.v8.3.2
Compare Source
v8.3.1
Compare Source
v8.3.0
: 8.3 “Duke Murmur”Compare Source
PostCSS 8.3 improved source map parsing performance, added
Node#assign()
shortcut, and experimentalDocument
node to AST.Thanks to Sponsors
This release was possible thanks to our community.
If your company wants to support the sustainability of front-end infrastructure or wants to give some love to PostCSS, you can join our supporters by:
Source Map Performance
Because PostCSS needs synchronous API, we can’t move from the old `source-map 0.6 to 0.7 (many other open-source projects too).
@7rulnik forked
source-map
0.6 tosource-map-js
and back-ported performance improvements from 0.7. In 8.3 we switched fromsource-map
to thissource-map-js
fork.You map see 4x performance improvements in parsing map from processing step before PostCSS (for instance, Sass).
Document
NodesThanks to @gucong3000, PostCSS already parse CSS from HTML and JS files (CSS-in-JS templates and objects).
But his plugin need big updates. @hudochenkov from stylelint team decided to create new parsers for styles inside CSS-in-JS, HTML, and Markdown.
He suggested adding new
Document
node type to PostCSS AST to keep multipleRoot
nodes inside and JS/HTML/Markdown code blocks between these style blocks.This is an experimental feature. Some aspects of this node could change within minor or patch version releases.
Node#assign()
ShortcutThe creator of famous
postcss-preset-env
and many other PostCSS tools, @jonathantneal suggested a nice shortcut to change multiple properties in the node:v8.2.15
Compare Source
list
type definitions (by @n19htz).v8.2.14
Compare Source
source-map
from client-side bundle (by Barak Igal).Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 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.
This PR was generated by Mend Renovate. View the repository job log.