🚨 [security] Update express 4.17.1 → 4.18.3 (minor)
🚨 Your current dependencies have known security vulnerabilities 🚨
This dependency update fixes known security vulnerabilities. Please see the details below and assess their impact carefully. We recommend to merge and deploy this as soon as possible!
Here is everything you need to know about this update. Please take a good look at what changed and the test results before merging this pull request.
What changed?
✳️ express (4.17.1 → 4.18.3) · Repo · Changelog
Security Advisories 🚨
🚨 qs vulnerable to Prototype Pollution
qs before 6.10.3, as used in Express before 4.17.3 and other products, allows attackers to cause a Node process hang for an Express application because an __ proto__ key can be used. In many typical Express use cases, an unauthenticated remote attacker can place the attack payload in the query string of the URL that is used to visit the application, such as a[proto]=b&a[proto]&a[length]=100000000. The fix was backported to qs 6.9.7, 6.8.3, 6.7.3, 6.6.1, 6.5.3, 6.4.1, 6.3.3, and 6.2.4 (and therefore Express 4.17.3, which has "deps: [email protected]" in its release description, is not vulnerable).
Release Notes
4.18.3
Main Changes
- Fix routing requests without method
- deps: [email protected]
- Fix strict json error message on Node.js 19+
- deps: content-type@~1.0.5
- deps: [email protected]
Other Changes
- Use https: protocol instead of deprecated git: protocol by @vcsjones in #5032
- build: [email protected] and [email protected] by @abenhamdine in #5034
- ci: update actions/checkout to v3 by @armujahid in #5027
- test: remove unused function arguments in params by @raksbisht in #5124
- Remove unused originalIndex from acceptParams by @raksbisht in #5119
- Fixed typos by @raksbisht in #5117
- examples: remove unused params by @raksbisht in #5113
- fix: parameter str is not described in JSDoc by @raksbisht in #5130
- fix: typos in History.md by @raksbisht in #5131
- build : add [email protected] by @abenhamdine in #5028
- test: remove unused function arguments in params by @raksbisht in #5137
- use random port in test so it won't fail on already listening by @rluvaton in #5162
- tests: use cb() instead of done() by @kristof-low in #5233
- examples: remove multipart example by @riddlew in #5195
- Update support Node.js@18 in the CI by @UlisesGascon in #5490
- Fix favicon-related bug in cookie-sessions example by @DmytroKondrashov in #5414
- Release 4.18.3 by @UlisesGascon in #5505
New Contributors
- @vcsjones made their first contribution in #5032
- @abenhamdine made their first contribution in #5034
- @armujahid made their first contribution in #5027
- @raksbisht made their first contribution in #5124
- @rluvaton made their first contribution in #5162
- @kristof-low made their first contribution in #5233
- @riddlew made their first contribution in #5195
- @DmytroKondrashov made their first contribution in #5414
Full Changelog: 4.18.2...4.18.3
4.18.2
- Fix regression routing a large stack in a single route
- deps: [email protected]
- deps: [email protected]
- perf: remove unnecessary object clone
- deps: [email protected]
4.18.1
- Fix hanging on large stack of sync routes
4.18.0
- Add "root" option to
res.download- Allow
optionswithoutfilenameinres.download- Deprecate string and non-integer arguments to
res.status- Fix behavior of
null/undefinedasmaxAgeinres.cookie- Fix handling very large stacks of sync middleware
- Ignore
Object.prototypevalues in settings throughapp.set/app.get- Invoke
defaultwith same arguments as types inres.format- Support proper 205 responses using
res.send- Use
http-errorsforres.formaterror- deps: [email protected]
- Fix error message for json parse whitespace in
strict- Fix internal error when inflated body exceeds limit
- Prevent loss of async hooks context
- Prevent hanging when request already read
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- Add
priorityoption- Fix
expiresoption to reject invalid dates- deps: [email protected]
- Replace internal
evalusage withFunctionconstructor- Use instance methods on
processto check for listeners- deps: [email protected]
- Remove set content headers that break response
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- Prevent loss of async hooks context
- deps: [email protected]
- deps: [email protected]
- Fix emitted 416 error missing headers property
- Limit the headers removed for 304 response
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- Remove code 306
- Rename
425 Unordered Collectionto standard425 Too Early
4.17.3
- deps: accepts@~1.3.8
- deps: mime-types@~2.1.34
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- Fix handling of
__proto__keys- pref: remove unnecessary regexp for trust proxy
4.17.2
- Fix handling of
undefinedinres.jsonp- Fix handling of
undefinedwhen"json escape"is enabled- Fix incorrect middleware execution with unanchored
RegExps- Fix
res.jsonp(obj, status)deprecation message- Fix typo in
res.isJSDoc- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: type-is@~1.6.18
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- Fix
maxAgeoption to reject invalid values- deps: proxy-addr@~2.0.7
- Use
req.socketover deprecatedreq.connection- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
- pref: ignore empty http tokens
- deps: [email protected]
- deps: [email protected]
- deps: [email protected]
Does any of this look wrong? Please let us know.
Commits
See the full diff on Github. The new version differs by more commits than we can show here.
Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.
All Depfu comment commands
- @depfu rebase
- Rebases against your default branch and redoes this update
- @depfu recreate
- Recreates this PR, overwriting any edits that you've made to it
- @depfu merge
- Merges this PR once your tests are passing and conflicts are resolved
- @depfu cancel merge
- Cancels automatic merging of this PR
- @depfu close
- Closes this PR and deletes the branch
- @depfu reopen
- Restores the branch and reopens this PR (if it's closed)
- @depfu pause
- Ignores all future updates for this dependency and closes this PR
- @depfu pause [minor|major]
- Ignores all future minor/major updates for this dependency and closes this PR
- @depfu resume
- Future versions of this dependency will create PRs again (leaves this PR as is)