generated from hmcts/expressjs-template
-
Notifications
You must be signed in to change notification settings - Fork 1
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
Update dependency webpack-dev-middleware to v6 [SECURITY] #783
Open
renovate
wants to merge
1
commit into
master
Choose a base branch
from
renovate/npm-webpack-dev-middleware-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 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
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
August 8, 2024 13:20
b9694a0
to
d9afaed
Compare
renovate
bot
dismissed stale reviews from renovate-approve-2[bot] and renovate-approve[bot]
via
August 30, 2024 13:58
d9afaed
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
2 times, most recently
from
September 20, 2024 07:41
f064a1f
to
fd15240
Compare
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
September 20, 2024 14:06
fd15240
to
faa5f4a
Compare
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
September 20, 2024 14:58
faa5f4a
to
ab11870
Compare
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
October 9, 2024 08:36
ab11870
to
4008a5f
Compare
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
October 29, 2024 14:56
4008a5f
to
cc71532
Compare
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
November 8, 2024 09:37
cc71532
to
4ea4797
Compare
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
November 11, 2024 09:53
4ea4797
to
6bc42e5
Compare
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
November 28, 2024 08:59
6bc42e5
to
9141576
Compare
renovate
bot
changed the title
Update dependency webpack-dev-middleware to v6 [SECURITY]
Update dependency webpack-dev-middleware to v6 [SECURITY] - autoclosed
Dec 8, 2024
auto-merge was automatically disabled
December 8, 2024 18:35
Pull request was closed
renovate
bot
deleted the
renovate/npm-webpack-dev-middleware-vulnerability
branch
December 8, 2024 18:35
renovate
bot
changed the title
Update dependency webpack-dev-middleware to v6 [SECURITY] - autoclosed
Update dependency webpack-dev-middleware to v6 [SECURITY]
Dec 8, 2024
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
3 times, most recently
from
December 9, 2024 17:06
1d88523
to
ade8152
Compare
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
December 10, 2024 13:17
ade8152
to
a300289
Compare
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
December 11, 2024 15:53
a300289
to
414a925
Compare
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
December 12, 2024 16:15
414a925
to
437e2e6
Compare
renovate
bot
force-pushed
the
renovate/npm-webpack-dev-middleware-vulnerability
branch
from
January 15, 2025 09:33
437e2e6
to
32d763c
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
0 participants
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:
^5.3.4
->^6.0.0
GitHub 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/passwd
Impact
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)
v6.1.2
Compare Source
6.1.2 (2024-03-20)
Bug Fixes
v6.1.1
Compare Source
v6.1.0
Compare Source
Features
mimeTypeDefault
option (#1527) (503d290)modifyResponseData
option (#1529) (35dac70)Bug Fixes
memory-fs
whenwriteToDisk
istrue
(#1537) (852245e)6.0.2 (2023-03-19)
Bug Fixes
6.0.1 (2022-11-28)
Bug Fixes
index
andmethods
properties (#1397) (cda328e)v6.0.2
Compare Source
v6.0.1
Compare Source
v6.0.0
Compare Source
⚠ BREAKING CHANGES
5.3.3 (2022-05-18)
Bug Fixes
Request
andResponse
(#1271) (eeb8aa8)5.3.2 (2022-05-17)
Bug Fixes
5.3.1 (2022-02-01)
Bug Fixes
Configuration
📅 Schedule: Branch creation - "" in timezone Europe/London, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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.