neh
neh copied to clipboard
[Security] Bump urijs from 1.19.5 to 1.19.7
Bumps urijs from 1.19.5 to 1.19.7. This update includes a security fix.
Vulnerabilities fixed
Sourced from The GitHub Security Advisory Database.
Hostname spoofing via backslashes in URL
Impact
If using affected versions to determine a URL's hostname, the hostname can be spoofed by using a backslash (
\
) character as part of the scheme delimiter, e.g.scheme:/\hostname
. If the hostname is used in security decisions, the decision may be incorrect.Depending on library usage and attacker intent, impacts may include allow/block list bypasses, SSRF attacks, open redirects, or other undesired behavior.
Example URL:
https:/\expected-example.com/path
Escaped string:https:/\\expected-example.com/path
(JavaScript strings must escape backslash)Affected versions incorrectly return no hostname. Patched versions correctly return
expected-example.com
. Patched versions match the behavior of other parsers which implement the WHATWG URL specification, including web browsers and Node's built-in URL class.Patches
Version 1.19.6 is patched against all known payload variants.
References
https://github.com/medialize/URI.js/releases/tag/v1.19.6 (fix for this particular bypass) https://github.com/medialize/URI.js/releases/tag/v1.19.4 (fix for related bypass) https://github.com/medialize/URI.js/releases/tag/v1.19.3 (fix for related bypass) PR #233 (initial fix for backslash handling)
For more information
... (truncated)
Affected versions: < 1.19.6
Release notes
Sourced from urijs's releases.
1.19.7 (July 14th 2021)
- SECURITY fixing
URI.parseQuery()
to prevent overwriting__proto__
in parseQuery() - disclosed privately by@NewEraCracker
- SECURITY fixing
URI.parse()
to handle variable amounts of\
and/
in scheme delimiter as Node and Browsers do - disclosed privately by ready-research via https://huntr.dev/- removed obsolete build tools
- updated jQuery versions (verifying compatibility with 1.12.4, 2.2.4, 3.6.0)
1.19.6 (February 13th 2021)
- SECURITY fixing
URI.parse()
to rewrite\
in scheme delimiter to/
as Node and Browsers do - disclosed privately by Yaniv Nizry from the CxSCA AppSec team at Checkmarx
Changelog
Sourced from urijs's changelog.
1.19.7 (July 14th 2021)
- SECURITY fixing
URI.parseQuery()
to prevent overwriting__proto__
in parseQuery() - disclosed privately by@NewEraCracker
- SECURITY fixing
URI.parse()
to handle variable amounts of\
and/
in scheme delimiter as Node and Browsers do - disclosed privately by ready-research via https://huntr.dev/- removed obsolete build tools
- updated jQuery versions (verifying compatibility with 1.12.4, 2.2.4, 3.6.0)
1.19.6 (February 13th 2021)
- SECURITY fixing
URI.parse()
to rewrite\
in scheme delimiter to/
as Node and Browsers do - disclosed privately by Yaniv Nizry from the CxSCA AppSec team at Checkmarx
Commits
19e54c7
chore(build): bumping to version 1.19.7547d4b6
build: update jqueryaab4a43
build: remove obsolete build toolsac43ca8
fix(parse): more backslash galore #410622db6d
docs: add security policy8e51b00
fix(parse): prevent overwriting proto in parseQuery()46c8ac0
chore(build): bumping to version 1.19.6a1ad8bc
fix(parse): treat backslash as forwardslash in scheme delimiter- See full diff in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase
.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
-
@dependabot rebase
will rebase this PR -
@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it -
@dependabot merge
will merge this PR after your CI passes on it -
@dependabot squash and merge
will squash and merge this PR after your CI passes on it -
@dependabot cancel merge
will cancel a previously requested merge and block automerging -
@dependabot reopen
will reopen this PR if it is closed -
@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually -
@dependabot ignore this major version
will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this minor version
will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) -
@dependabot ignore this dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) -
@dependabot use these labels
will set the current labels as the default for future PRs for this repo and language -
@dependabot use these reviewers
will set the current reviewers as the default for future PRs for this repo and language -
@dependabot use these assignees
will set the current assignees as the default for future PRs for this repo and language -
@dependabot use this milestone
will set the current milestone as the default for future PRs for this repo and language -
@dependabot badge me
will comment on this PR with code to add a "Dependabot enabled" badge to your readme
Additionally, you can set the following in your Dependabot dashboard:
- Update frequency (including time of day and day of week)
- Pull request limits (per update run and/or open at any time)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)
Codecov Report
Merging #556 (0b47fd1) into main (c57a143) will not change coverage. The diff coverage is
n/a
.
@@ Coverage Diff @@
## main #556 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 19 19
Lines 409 409
Branches 44 44
=========================================
Hits 409 409
Continue to review full report at Codecov.
Legend - Click here to learn more
Δ = absolute <relative> (impact)
,ø = not affected
,? = missing data
Powered by Codecov. Last update c57a143...0b47fd1. Read the comment docs.