Skip to content

[Security] Bump send and express

Dependabot requested to merge dependabot-npm_and_yarn-multi-435c4b74b9 into master

Bumps send to 1.1.0 and updates ancestor dependency express. These dependencies need to be updated together.

Updates send from 0.18.0 to 1.1.0 This update includes a security fix.

Vulnerabilities fixed

send vulnerable to template injection that can lead to XSS

Impact

passing untrusted user input - even after sanitizing it - to SendStream.redirect() may execute untrusted code

Patches

this issue is patched in send 0.19.0

Workarounds

users are encouraged to upgrade to the patched version of express, but otherwise can workaround this issue by making sure any untrusted inputs are safe, ideally by validating them against an explicit allowlist

Details

successful exploitation of this vector requires the following:

  1. The attacker MUST control the input to response.redirect()
  2. express MUST NOT redirect before the template appears
  3. the browser MUST NOT complete redirection before:
  4. the user MUST click on the link in the template

Patched versions: 0.19.0 Affected versions: < 0.19.0

Release notes

Sourced from send's releases.

1.1.0

What's Changed

New Contributors

Full Changelog: https://github.com/pillarjs/send/compare/v1.0.0...1.1.0

0.19.0

What's Changed

New Contributors

Full Changelog: https://github.com/pillarjs/send/compare/0.18.0...0.19.0

Changelog

Sourced from send's changelog.

1.1.0 / 2024-09-10

  • Changes from 0.19.0

1.0.0 / 2024-07-25

  • Drop support for Node.js <18.0
  • statuses@^2.0.1
  • range-parser@^1.2.1
  • on-finished@^2.4.1
  • ms@^2.1.3
  • mime-types@^2.1.35
  • http-errors@^2.0.0
  • fresh@^0.5.2
  • etag@^1.8.1
  • escape-html@^1.0.3
  • encodeurl@^2.0.0
  • destroy@^1.2.0
  • debug@^4.3.5

1.0.0-beta.2 / 2024-03-04

  • Changes from 0.18.0

1.0.0-beta.1 / 2022-02-04

  • Drop support for Node.js 0.8
  • Remove hidden option -- use dotfiles option
  • Remove from alias to root -- use root directly
  • Remove send.etag() -- use etag in options
  • Remove send.index() -- use index in options
  • Remove send.maxage() -- use maxAge in options
  • Remove send.root() -- use root in options
  • Use mime-types for file to content type mapping -- removed send.mime
  • deps: debug@3.1.0
    • Add DEBUG_HIDE_DATE environment variable
    • Change timer to per-namespace instead of global
    • Change non-TTY date format
    • Remove DEBUG_FD environment variable support
    • Support 256 namespace colors

0.19.0 / 2024-09-10

  • Remove link renderization in html while redirecting
Commits
Maintainer changes

This version was pushed to npm by ulisesgascon, a new releaser for send since your current version.


Updates express from 4.20.0 to 5.0.0

Release notes

Sourced from express's releases.

5.0.0

What's Changed

... (truncated)

Changelog

Sourced from express's changelog.

5.0.0 / 2024-09-10

  • remove:
    • path-is-absolute dependency - use path.isAbsolute instead
  • breaking:
    • res.status() accepts only integers, and input must be greater than 99 and less than 1000
      • will throw a RangeError: Invalid status code: ${code}. Status code must be greater than 99 and less than 1000. for inputs outside this range
      • will throw a TypeError: Invalid status code: ${code}. Status code must be an integer. for non integer inputs
    • deps: send@1.0.0
    • res.redirect('back') and res.location('back') is no longer a supported magic string, explicitly use req.get('Referrer') || '/'.
  • change:
    • res.clearCookie will ignore user provided maxAge and expires options
  • deps: cookie-signature@^1.2.1
  • deps: debug@4.3.6
  • deps: merge-descriptors@^2.0.0
  • deps: serve-static@^2.1.0
  • deps: qs@6.13.0
  • deps: accepts@^2.0.0
  • deps: mime-types@^3.0.0
    • application/javascript => text/javascript
  • deps: type-is@^2.0.0
  • deps: content-disposition@^1.0.0
  • deps: finalhandler@^2.0.0
  • deps: fresh@^2.0.0
  • deps: body-parser@^2.0.1
  • deps: send@^1.1.0

5.0.0-beta.3 / 2024-03-25

This incorporates all changes after 4.19.1 up to 4.19.2.

5.0.0-beta.2 / 2024-03-20

This incorporates all changes after 4.17.2 up to 4.19.1.

5.0.0-beta.1 / 2022-02-14

This is the first Express 5.0 beta release, based off 4.17.2 and includes changes from 5.0.0-alpha.8.

  • change:
    • Default "query parser" setting to 'simple'
    • Requires Node.js 4+
    • Use mime-types for file to content type mapping
  • deps: array-flatten@3.0.0
  • deps: body-parser@2.0.0-beta.1
    • req.body is no longer always initialized to {}

... (truncated)

Commits


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

Merge request reports