[Security] Bump webpack from 5.80.0 to 5.94.0 in /webapp
Bumps webpack from 5.80.0 to 5.94.0. This update includes a security fix.
Vulnerabilities fixed
Webpack's AutoPublicPathRuntimeModule has a DOM Clobbering Gadget that leads to XSS Hi, Webpack developer team!
Summary
We discovered a DOM Clobbering vulnerability in Webpack’s
AutoPublicPathRuntimeModule
. The DOM Clobbering gadget in the module can lead to cross-site scripting (XSS) in web pages where scriptless attacker-controlled HTML elements (e.g., animg
tag with an unsanitizedname
attribute) are present.We found the real-world exploitation of this gadget in the Canvas LMS which allows XSS attack happens through an javascript code compiled by Webpack (the vulnerable part is from Webpack). We believe this is a severe issue. If Webpack’s code is not resilient to DOM Clobbering attacks, it could lead to significant security vulnerabilities in any web application using Webpack-compiled code.
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/
Gadgets found in Webpack
... (truncated)
Patched versions: 5.94.0 Affected versions: < 5.94.0
Release notes
Sourced from webpack's releases.
v5.94.0
Bug Fixes
- Added runtime condition for harmony reexport checked
- Handle properly
data
/http
/https
protocols in source maps- Make
bigint
optimistic when browserslist not found- Move
@types/eslint-scope
to dev deps- Related in asset stats is now always an array when no related found
- Handle ASI for export declarations
- Mangle destruction incorrect with export named default properly
- Fixed unexpected asi generation with sequence expression
- Fixed a lot of types
New Features
- Added new external type "module-import"
- Support
webpackIgnore
fornew URL()
construction- [CSS]
@import
pathinfo supportSecurity
- Fixed DOM clobbering in auto public path
v5.93.0
Bug Fixes
- Generate correct relative path to runtime chunks
- Makes
DefinePlugin
quieter under default log level- Fixed mangle destructuring default in namespace import
- Fixed consumption of eager shared modules for module federation
- Strip slash for pretty regexp
- Calculate correct contenthash for CSS generator options
New Features
- Added the
binary
generator option for asset modules to explicitly keep source maps produced by loaders- Added the
modern-module
library value for tree shakable output- Added the
overrideStrict
option to override strict or non-strict mode for javascript modulesv5.92.1
Bug Fixes
- Doesn't crash with an error when the css experiment is enabled and contenthash is used
v5.92.0
Bug Fixes
- Correct tidle range's comutation for module federation
- Consider runtime for pure expression dependency update hash
- Return value in the
subtractRuntime
function for runtime logic
... (truncated)
Commits
-
eabf85d
chore(release): 5.94.0 -
955e057
security: fix DOM clobbering in auto public path -
9822387
test: fix -
cbb86ed
test: fix -
5ac3d7f
fix: unexpected asi generation with sequence expression -
2411661
security: fix DOM clobbering in auto public path -
b8c03d4
fix: unexpected asi generation with sequence expression -
f46a03c
revert: do not use heuristic fallback for "module-import" -
60f1898
fix: do not use heuristic fallback for "module-import" -
66306aa
Revert "fix: module-import get fallback from externalsPresets" - Additional commits viewable in compare view
Dependabot commands
You can trigger Dependabot actions by commenting on this MR
-
$dependabot recreate
will recreate this MR rewriting all the manual changes and resolving conflicts