Update dependency webpack-dev-middleware to v7 [SECURITY]#23
Open
renovate[bot] wants to merge 1 commit intomasterfrom
Open
Update dependency webpack-dev-middleware to v7 [SECURITY]#23renovate[bot] wants to merge 1 commit intomasterfrom
renovate[bot] wants to merge 1 commit intomasterfrom
Conversation
2e419c3 to
a4dbe6d
Compare
a4dbe6d to
c759933
Compare
c759933 to
e94fcaf
Compare
b2b0331 to
616986f
Compare
616986f to
2a993ba
Compare
2a993ba to
0d2227b
Compare
0d2227b to
1929433
Compare
1929433 to
325fb76
Compare
5c2a04b to
e5b4602
Compare
e5b4602 to
c5fc36c
Compare
c5fc36c to
b767af8
Compare
ad296a2 to
c8ae78f
Compare
df1bac2 to
ec2e2ba
Compare
ec2e2ba to
f4c2b03
Compare
f4c2b03 to
0c31133
Compare
0c31133 to
2d5b9db
Compare
2d5b9db to
20390c9
Compare
20390c9 to
960bca0
Compare
960bca0 to
7b0ad79
Compare
7b0ad79 to
98c555b
Compare
98c555b to
59f9cab
Compare
59f9cab to
70134eb
Compare
70134eb to
86fe7a5
Compare
86fe7a5 to
88742e9
Compare
88742e9 to
2a532e6
Compare
2a532e6 to
6d29102
Compare
6d29102 to
dad4bd9
Compare
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
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:
^1.2.0→^7.0.0GitHub Vulnerability Alerts
CVE-2024-29180
Summary
The webpack-dev-middleware middleware does not validate the supplied URL address sufficiently before returning the local file. It is possible to access any file on the developer's machine.
Details
The middleware can either work with the physical filesystem when reading the files or it can use a virtualized in-memory memfs filesystem.
If writeToDisk configuration option is set to true, the physical filesystem is used:
https://github.com/webpack/webpack-dev-middleware/blob/7ed24e0b9f53ad1562343f9f517f0f0ad2a70377/src/utils/setupOutputFileSystem.js#L21
The getFilenameFromUrl method is used to parse URL and build the local file path.
The public path prefix is stripped from the URL, and the unsecaped path suffix is appended to the outputPath:
https://github.com/webpack/webpack-dev-middleware/blob/7ed24e0b9f53ad1562343f9f517f0f0ad2a70377/src/utils/getFilenameFromUrl.js#L82
As the URL is not unescaped and normalized automatically before calling the midlleware, it is possible to use %2e and %2f sequences to perform path traversal attack.
PoC
A blank project can be created containing the following configuration file webpack.config.js:
module.exports = { devServer: { devMiddleware: { writeToDisk: true } } };When started, it is possible to access any local file, e.g. /etc/passwd:
$ curl localhost:8080/public/..%2f..%2f..%2f..%2f../etc/passwdImpact
The developers using webpack-dev-server or webpack-dev-middleware are affected by the issue. When the project is started, an attacker might access any file on the developer's machine and exfiltrate the content (e.g. password, configuration files, private source code, ...).
If the development server is listening on a public IP address (or 0.0.0.0), an attacker on the local network can access the local files without any interaction from the victim (direct connection to the port).
If the server allows access from third-party domains (CORS, Allow-Access-Origin: * ), an attacker can send a malicious link to the victim. When visited, the client side script can connect to the local server and exfiltrate the local files.
Recommendation
The URL should be unescaped and normalized before any further processing.
Release Notes
webpack/webpack-dev-middleware (webpack-dev-middleware)
v7.4.5Compare Source
v7.4.4Compare Source
v7.4.3Compare Source
v7.4.2Compare Source
v7.4.1Compare Source
v7.4.0Compare Source
Features
image.e12ab567.jpg) (5ed629d)Cache-Controlheader (#1923) (f7529c3)Bug Fixes
devServer: false(b443f4d)v7.3.0Compare Source
Features
7.2.1 (2024-04-02)
Bug Fixes
v7.2.1Compare Source
Features
7.2.1 (2024-04-02)
Bug Fixes
v7.2.0Compare Source
Features
7.2.1 (2024-04-02)
Bug Fixes
v7.1.1Compare Source
Features
ETagheader generation (#1797) (b759181)Last-Modifiedheader generation (#1798) (18e5683)7.1.1 (2024-03-21)
Bug Fixes
ContentLengthincorrectly set for empty files (#1785) (0f3e25e)v7.1.0Compare Source
Features
ETagheader generation (#1797) (b759181)Last-Modifiedheader generation (#1798) (18e5683)7.1.1 (2024-03-21)
Bug Fixes
ContentLengthincorrectly set for empty files (#1785) (0f3e25e)v7.0.0Compare Source
⚠ BREAKING CHANGES
Features
updated memfs@4 (#1693) (244d9f8)
minimum supported Node.js version is 18.12.0 (#1694) (e273d61)
6.1.1 (2023-05-16)
Bug Fixes
methodsshould be string array (#1550) (41b2f77)v6.1.3Compare Source
6.1.3 (2024-03-29)
Bug Fixes
v6.1.2Compare Source
6.1.2 (2024-03-20)
Bug Fixes
v6.1.1Compare Source
⚠ BREAKING CHANGES
Features
updated memfs@4 (#1693) (244d9f8)
minimum supported Node.js version is 18.12.0 (#1694) (e273d61)
6.1.1 (2023-05-16)
Bug Fixes
methodsshould be string array (#1550) (41b2f77)v6.1.0Compare Source
⚠ BREAKING CHANGES
Features
updated memfs@4 (#1693) (244d9f8)
minimum supported Node.js version is 18.12.0 (#1694) (e273d61)
6.1.1 (2023-05-16)
Bug Fixes
methodsshould be string array (#1550) (41b2f77)v6.0.2Compare Source
Features
mimeTypeDefaultoption (#1527) (503d290)modifyResponseDataoption (#1529) (35dac70)Bug Fixes
memory-fswhenwriteToDiskistrue(#1537) (852245e)6.0.2 (2023-03-19)
Bug Fixes
6.0.1 (2022-11-28)
Bug Fixes
indexandmethodsproperties (#1397) (cda328e)v6.0.1Compare Source
Features
mimeTypeDefaultoption (#1527) (503d290)modifyResponseDataoption (#1529) (35dac70)Bug Fixes
memory-fswhenwriteToDiskistrue(#1537) (852245e)6.0.2 (2023-03-19)
Bug Fixes
6.0.1 (2022-11-28)
Bug Fixes
indexandmethodsproperties (#1397) (cda328e)v6.0.0Compare Source
Features
mimeTypeDefaultoption (#1527) (503d290)modifyResponseDataoption (#1529) (35dac70)Bug Fixes
memory-fswhenwriteToDiskistrue(#1537) (852245e)6.0.2 (2023-03-19)
Bug Fixes
6.0.1 (2022-11-28)
Bug Fixes
indexandmethodsproperties (#1397) (cda328e)v5.3.4Compare Source
5.3.4 (2024-03-20)
Bug Fixes
v5.3.3Compare Source
⚠ BREAKING CHANGES
5.3.3 (2022-05-18)
Bug Fixes
RequestandResponse(#1271) (eeb8aa8)5.3.2 (2022-05-17)
Bug Fixes
5.3.1 (2022-02-01)
Bug Fixes
v5.3.2Compare Source
⚠ BREAKING CHANGES
5.3.3 (2022-05-18)
Bug Fixes
RequestandResponse(#1271) (eeb8aa8)5.3.2 (2022-05-17)
Bug Fixes
5.3.1 (2022-02-01)
Bug Fixes
v5.3.1Compare Source
⚠ BREAKING CHANGES
5.3.3 (2022-05-18)
Bug Fixes
RequestandResponse(#1271) (eeb8aa8)5.3.2 (2022-05-17)
Bug Fixes
5.3.1 (2022-02-01)
Bug Fixes
v5.3.0Compare Source
⚠ BREAKING CHANGES
5.3.3 (2022-05-18)
Bug Fixes
RequestandResponse(#1271) (eeb8aa8)5.3.2 (2022-05-17)
Bug Fixes
5.3.1 (2022-02-01)
Bug Fixes
v5.2.2Compare Source
Features
5.2.2 (2021-11-17)
Chore
schema-utilspackage to4.0.0version5.2.1 (2021-09-25)
v5.2.1Compare Source
Features
5.2.2 (2021-11-17)
Chore
schema-utilspackage to4.0.0version5.2.1 (2021-09-25)
v5.2.0Compare Source
Features
5.2.2 (2021-11-17)
Chore
schema-utilspackage to4.0.0version5.2.1 (2021-09-25)
v5.1.0Compare Source
Features
Rangeheader is present (e8b21f0)Bug Fixes
mempackage (#1027) (0d55268)v5.0.0Compare Source
⚠ BREAKING CHANGES
Node.jsversion is12.13.0(#928) (4cffeff)v4.3.0Compare Source
Features
getFilenameFromUrlto API (#911) (1edc726)Bug Fixes
v4.2.0Compare Source
Features
headersoption to accept function (#897) (966afb3)v4.1.0Compare Source
Features
statsoption (376cdba)4.0.4 (2021-01-13)
Bug Fixes
4.0.3 (2021-01-12)
Bug Fixes
statstostdoutinsteadstderr, how doeswebpack-cli, if you need hidestatsfrom output please use{ stats: false }or{ stats: 'none' }(4de0f97)stats(4de0f97)Content-type headeron unknown types (#809) (5c9eee5)4.0.2 (2020-11-10)
Bug Fixes
headersoption (#763) (7c4cac5)4.0.1 (2020-11-09)
Bug Fixes
connect(b83a1db)v4.0.4Compare Source
Features
statsoption (376cdba)4.0.4 (2021-01-13)
Bug Fixes
4.0.3 (2021-01-12)
Bug Fixes
statstostdoutinsteadstderr, how doeswebpack-cli, if you need hidestatsfrom output please use{ stats: false }or{ stats: 'none' }(4de0f97)stats(4de0f97)Content-type headeron unknown types (#809) (5c9eee5)4.0.2 (2020-11-10)
Bug Fixes
headersoption (#763) (7c4cac5)4.0.1 (2020-11-09)
Bug Fixes
connect(b83a1db)v4.0.3Compare Source
Features
statsoption (376cdba)4.0.4 (2021-01-13)
Bug Fixes
4.0.3 (2021-01-12)
Bug Fixes
statstostdoutinsteadstderr, how doeswebpack-cli, if you need hidestatsfrom output please use{ stats: false }or{ stats: 'none' }(4de0f97)stats(4de0f97)Content-type headeron unknown types (#809) (5c9eee5)4.0.2 (2020-11-10)
Bug Fixes
headersoption (#763) (7c4cac5)4.0.1 (2020-11-09)
Bug Fixes
connect(b83a1db)v4.0.2Compare Source
Features
statsoption (376cdba)4.0.4 (2021-01-13)
Bug Fixes
4.0.3 (2021-01-12)
Bug Fixes
statstostdoutinsteadstderr, how doeswebpack-cli, if you need hidestatsfrom output please use{ stats: false }or{ stats: 'none' }(4de0f97)stats(4de0f97)Content-type headeron unknown types (#809) (5c9eee5)4.0.2 (2020-11-10)
Bug Fixes
headersoption (#763) (7c4cac5)4.0.1 (2020-11-09)
Bug Fixes
connect(b83a1db)v4.0.1Compare Source
Features
statsoption (376cdba)4.0.4 (2021-01-13)
Bug Fixes
4.0.3 (2021-01-12)
Bug Fixes
statstostdoutinsteadstderr, how doeswebpack-cli, if you need hidestatsfrom output please use{ stats: false }or{ stats: 'none' }(4de0f97)stats(4de0f97)Content-type headeron unknown types (#809) (5c9eee5)4.0.2 (2020-11-10)
Bug Fixes
headersoption (#763) (7c4cac5)4.0.1 (2020-11-09)
Bug Fixes
connect(b83a1db)v4.0.0Compare Source
Features
statsoption (376cdba)4.0.4 (2021-01-13)
Bug Fixes
4.0.3 (2021-01-12)
Bug Fixes
statstostdoutinsteadstderr, how doeswebpack-cli, if you need hidestatsfrom output please use{ stats: false }or{ stats: 'none' }(4de0f97)stats(4de0f97)Content-type headeron unknown types (#809) (5c9eee5)4.0.2 (2020-11-10)
Bug Fixes
headersoption (#763) (7c4cac5)4.0.1 (2020-11-09)
Bug Fixes
connect(b83a1db)v3.7.3Compare Source
3.7.3 (2020-12-15)
Bug Fixes
v3.7.2Compare Source
Bug Fixes
options.jsonfile (#589) (41d6264)4.0.0-rc.0 (2020-02-19)
Bug Fixes
output.pathandoutput.publicPathoptions from the configurationstatsoption from the configurationwatchOptionsoption from the configurationwriteToDiskoption now correctly works in multi-compiler modeoutputFileSystemoption now correctly works in multi-compiler mode[hash]/[fullhash]inoutput.pathandoutput.publicPathContent-Typeheader doesn't havecharset=utf-8value for custom MIME types and MIME types which can be nonutf-8Features
webpackloggermemfspackageBREAKING CHANGES
10.13.0publicPathis taken from the value of theoutput.publicPathoption from the configuration (webpack.config.js)statsoption was removed, the default value of thestatsoption is taken from the value of thestatsoption from the configuration (webpack.config.js)watchOptionswas removed, the default value of thewatchOptionsoption is taken from the value of thewatchOptionsoption from the configuration (webpack.config.js)Content-Typeheader doesn't havecharset=utf-8value for custom MIME types and MIME types which can be nonutf-8fsoption was renamed to theoutputFileSystemoptionlazyoption was removed without replacementlogger,logLevelandlogTimeoptions were removed without replacement. You can setup thelevelvalue using{ infrastructureLogging: { level: 'warn' } }, please read https://webpack.js.org/configuration/other-options/#infrastructurelogging. You can use theinfrastructurelog(infrastructureLoginwebpack@5) hook to customize logs. Thelogproperty in the middleware context was renamed tologgermimeTypesoption first requires you to specify an extension and then a content-type -{ mimeTypes: { phtml: 'text/html' } }forceoption from themimeTypesoption was removed without replacementreporteroption was removed without replacementgetFilenameFromUrlmethod was removed from the APIlocalsnow underres.locals.webpack- useres.locals.webpack.statsfor accessstatsandres.locals.webpack.outputFileSystemto accessoutputFileSystem3.7.2 (2019-09-28)
Bug Fixes
writeToDiskused (#472) (6730076)3.7.1 (2019-09-03)
Bug Fixes
writeToFileoption has compatibility with webpack@5 (#459) (5c90e1e)v3.7.1Compare Source
Bug Fixes
options.jsonfile (#589) (41d6264)4.0.0-rc.0 (2020-02-19)
Bug Fixes
output.pathandoutput.publicPathoptions from the configurationstatsoption from the configurationwatchOptionsoption from the configurationwriteToDiskoption now correctly works in multi-compiler modeoutputFileSystemoption now correctly works in multi-compiler mode[hash]/[fullhash]inoutput.pathandoutput.publicPathContent-Typeheader doesn't havecharset=utf-8value for custom MIME types and MIME types which can be nonutf-8Features
webpackloggermemfspackageBREAKING CHANGES
10.13.0publicPathis taken from the value of theoutput.publicPathoption from the configuration (webpack.config.js)statsoption was removed, the default value of thestatsoption is taken from the value of thestatsoption from the configuration (webpack.config.js)watchOptionswas removed, the default value of thewatchOptionsoption is taken from the value of thewatchOptionsoption from the configuration (webpack.config.js)Content-Typeheader doesn't havecharset=utf-8value for custom MIME types and MIME types which can be nonutf-8fsoption was renamed to theoutputFileSystemoptionlazyoption was removed without replacementlogger,logLevelandlogTimeoptions were removed without replacement. You can setup thelevelvalue using{ infrastructureLogging: { level: 'warn' } }, please read https://webpack.js.org/configuration/other-options/#infrastructurelogging. You can use theinfrastructurelog(infrastructureLoginwebpack@5) hook to customize logs. Thelogproperty in the middleware context was renamed tologgermimeTypesoption first requires you to specify an extension and then a content-type -{ mimeTypes: { phtml: 'text/html' } }forceoption from themimeTypesoption was removed without replacementreporteroption was removed without replacementgetFilenameFromUrlmethod was removed from the APIlocalsnow underres.locals.webpack- useres.locals.webpack.statsfor accessstatsandres.locals.webpack.outputFileSystemto accessoutputFileSystem[3.7.2](https://redirect.github.com/webpack/webpack-dev-middleware/compare/v3.7.1..
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, 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.