-
Notifications
You must be signed in to change notification settings - Fork 1
chore(deps): update dependency rollup to v3.29.5 [security] #395
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
renovate
wants to merge
1
commit into
master
Choose a base branch
from
renovate/npm-rollup-vulnerability
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5580013 to
6511221
Compare
da62c56 to
ee17c0c
Compare
8f47287 to
7faea4a
Compare
7faea4a to
f424029
Compare
e9d3178 to
e424e2e
Compare
d20b519 to
1b1bd2b
Compare
a6cc4f1 to
838448a
Compare
838448a to
a7d3d67
Compare
a7d3d67 to
482efdb
Compare
e9ca9ec to
172427e
Compare
e2c32a1 to
d72bd51
Compare
d3b4f4f to
1317b8e
Compare
1317b8e to
edc4033
Compare
edc4033 to
3941311
Compare
216bbe9 to
04634ce
Compare
04634ce to
f79bbf3
Compare
f79bbf3 to
4bac6a8
Compare
cad5007 to
0fa9210
Compare
6acd6bf to
c819539
Compare
c819539 to
f9a3fe2
Compare
f9a3fe2 to
d2d53aa
Compare
d2d53aa to
ed28742
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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:
3.22.0->3.29.5GitHub Vulnerability Alerts
CVE-2024-47068
Summary
We discovered a DOM Clobbering vulnerability in rollup when bundling scripts that use
import.meta.urlor with plugins that emit and reference asset files from code incjs/umd/iifeformat. The DOM Clobbering gadget can lead to cross-site scripting (XSS) in web pages where scriptless attacker-controlled HTML elements (e.g., animgtag with an unsanitizednameattribute) are present.It's worth noting that we’ve identifed similar issues in other popular bundlers like Webpack (CVE-2024-43788), which might serve as a good reference.
Details
Backgrounds
DOM Clobbering is a type of code-reuse attack where the attacker first embeds a piece of non-script, seemingly benign HTML markups in the webpage (e.g. through a post or comment) and leverages the gadgets (pieces of js code) living in the existing javascript code to transform it into executable code. More for information about DOM Clobbering, here are some references:
[1] https://scnps.co/papers/sp23_domclob.pdf
[2] https://research.securitum.com/xss-in-amp4email-dom-clobbering/
Gadget found in
rollupWe have identified a DOM Clobbering vulnerability in
rollupbundled scripts, particularly when the scripts usesimport.metaand set output in format ofcjs/umd/iife. In such cases,rollupreplaces meta property with the URL retrieved fromdocument.currentScript.https://github.com/rollup/rollup/blob/b86ffd776cfa906573d36c3f019316d02445d9ef/src/ast/nodes/MetaProperty.ts#L157-L162
https://github.com/rollup/rollup/blob/b86ffd776cfa906573d36c3f019316d02445d9ef/src/ast/nodes/MetaProperty.ts#L180-L185
However, this implementation is vulnerable to a DOM Clobbering attack. The
document.currentScriptlookup can be shadowed by an attacker via the browser's named DOM tree element access mechanism. This manipulation allows an attacker to replace the intended script element with a malicious HTML element. When this happens, thesrcattribute of the attacker-controlled element (e.g., animgtag ) is used as the URL for importing scripts, potentially leading to the dynamic loading of scripts from an attacker-controlled server.PoC
Considering a website that contains the following
main.jsscript, the devloper decides to use therollupto bundle up the program:rollup main.js --format cjs --file bundle.js.The output
bundle.jsis shown in the following code snippet.Adding the
rollupbundled script,bundle.js, as part of the web page source code, the page could load theextra.jsfile from the attacker's domain,attacker.controlled.serverdue to the introduced gadget during bundling. The attacker only needs to insert animgtag with the name attribute set tocurrentScript. This can be done through a website's feature that allows users to embed certain script-less HTML (e.g., markdown renderers, web email clients, forums) or via an HTML injection vulnerability in third-party JavaScript loaded on the page.Impact
This vulnerability can result in cross-site scripting (XSS) attacks on websites that include rollup-bundled files (configured with an output format of
cjs,iife, orumdand useimport.meta) and allow users to inject certain scriptless HTML tags without properly sanitizing thenameoridattributes.Patch
Patching the following two functions with type checking would be effective mitigations against DOM Clobbering attack.
Release Notes
rollup/rollup (rollup)
v3.29.5Compare Source
2024-09-21
Bug Fixes
Pull Requests
v3.29.4Compare Source
3.29.4
2023-09-28
Bug Fixes
Pull Requests
v3.29.3Compare Source
3.29.3
2023-09-24
Bug Fixes
Pull Requests
v3.29.2Compare Source
3.29.2
2023-09-15
Bug Fixes
TreeshakingPresettype (#5131)Pull Requests
TreeshakingPreset(@moltar)v3.29.1Compare Source
3.29.1
2023-09-10
Bug Fixes
Pull Requests
v3.29.0Compare Source
3.29.0
2023-09-06
Features
apito Plugin type (#5112)Bug Fixes
Pull Requests
v3.28.1Compare Source
3.28.1
2023-08-22
Bug Fixes
Pull Requests
v3.28.0Compare Source
3.28.0
2023-08-09
Features
preliminaryFileNameto generated chunks containing the file name placeholder (#5086)Bug Fixes
codeproperty of rendered modules in the output readonly (#5091)Pull Requests
preliminaryFileNametoOutputChunk(@lsdsjy)v3.27.2Compare Source
3.27.2
2023-08-04
Bug Fixes
Pull Requests
v3.27.1Compare Source
3.27.1
2023-08-03
Bug Fixes
Pull Requests
v3.27.0Compare Source
3.27.0
2023-07-28
Features
Object.valuesandObject.entriesas pure if their argument does not contain getters (#5072)Pull Requests
v3.26.3Compare Source
3.26.3
2023-07-17
Bug Fixes
manualChunksto avoid breaking existing configs (#5068)Pull Requests
v3.26.2Compare Source
3.26.2
2023-07-06
Bug Fixes
Pull Requests
v3.26.1Compare Source
3.26.1
2023-07-05
Bug Fixes
hasOwnPropertyas exported name in CommonJS (#5010)Pull Requests
v3.26.0Compare Source
3.26.0
2023-06-30
Features
--filterLogsCLI flag andROLLUP_FILTER_LOGSenvironment variable for log filtering (#5035)Pull Requests
v3.25.3Compare Source
3.25.3
2023-06-26
Bug Fixes
Pull Requests
v3.25.2Compare Source
3.25.2
2023-06-24
Bug Fixes
codeis not a string (#5042)Pull Requests
this.errorwithposintransformhook (@sapphi-red)v3.25.1Compare Source
3.25.1
2023-06-12
Bug Fixes
__NO_SIDE_EFFECTS__for async functions (#5031)Pull Requests
__NO_SIDE_EFFECTS__annotation for async function (@antfu)v3.25.0Compare Source
3.25.0
2023-06-11
Features
this.infoandthis.debugplugin context logging functions (#5026)onLogoption to read, map and filter logs (#5026)logLeveloption to fully suppress logs by level (#5026)this.warn,this.infoandthis.debugto avoid heavy computations based on log level (#5026)onLogplugin hook to read, filter and map logs from plugins (#5026)Pull Requests
v3.24.1Compare Source
3.24.1
2023-06-10
Bug Fixes
@rollup/plugin-commonjswere missing internal dependencies when code-splitting (#5029)process.exit(0)in watch mode to avoid issues in embedded scenarios (#5027)Pull Requests
v3.24.0Compare Source
3.24.0
2023-06-07
Features
/* #__NO_SIDE_EFFECTS__ */to mark function declarations as side effect free (#5024)Pull Requests
#__NO_SIDE_EFFECTS__annotation for function declaration (@antfu)v3.23.1Compare Source
3.23.1
2023-06-04
Bug Fixes
Pull Requests
v3.23.0Compare Source
3.23.0
2023-05-22
Features
Bug Fixes
Pull Requests
v3.22.1Compare Source
3.22.1
2023-05-21
Bug Fixes
Pull Requests
Configuration
📅 Schedule: Branch creation - "" in timezone Europe/Prague, 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.