[Security] Bump urijs from 1.19.2 to 1.19.7
Bumps urijs from 1.19.2 to 1.19.7. This update includes security fixes.
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/pathEscaped 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
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 followed by an at (@) character. 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\@observed-example.comEscaped string:https://expected-example.com\\@observed-example.com(JavaScript strings must escape backslash)Affected versions incorrectly return
observed-example.com. Patched versions correctly returnexpected-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.4 is patched against all known payload variants. Version 1.19.3 has a partial patch but is still vulnerable to a payload variant.
References
https://github.com/medialize/URI.js/releases/tag/v1.19.4 (complete fix for this bypass) https://github.com/medialize/URI.js/releases/tag/v1.19.3 (partial fix for this bypass) PR #233 (initial fix for backslash handling)
For more information
If you have any questions or comments about this advisory, open an issue in https://github.com/medialize/URI.js
... (truncated)
Affected versions: < 1.19.4
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 Checkmarx1.19.5 (December 30th 2020)
- dropping jquery.URI.js from minified bundle accidentally added since v1.19.3 - [Issue #404](medialize/URI.js#404)
1.19.4 (December 23rd 2020)
- SECURITY fixing
URI.parseAuthority()to rewrite\to/as Node and Browsers do - followed up to by alesandroortiz in [PR #403](medialize/URI.js#403), relates to [Issue #233](medialize/URI.js#233)1.19.3 (December 20th 2020)
- SECURITY fixing
URI.parseAuthority()to rewrite\to/as Node and Browsers do - disclosed privately by alesandroortiz, relates to [Issue #233](medialize/URI.js#233)
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 Checkmarx1.19.5 (December 30th 2020)
- dropping jquery.URI.js from minified bundle accidentally added since v1.19.3 - [Issue #404](medialize/URI.js#404)
1.19.4 (December 23rd 2020)
- SECURITY fixing
URI.parseAuthority()to rewrite\to/as Node and Browsers do - followed up to by alesandroortiz in [PR #403](medialize/URI.js#403), relates to [Issue #233](medialize/URI.js#233)1.19.3 (December 20th 2020)
- SECURITY fixing
URI.parseAuthority()to rewrite\to/as Node and Browsers do - disclosed privately by alesandroortiz, relates to [Issue #233](medialize/URI.js#233)
Commits
19e54c7chore(build): bumping to version 1.19.7547d4b6build: update jqueryaab4a43build: remove obsolete build toolsac43ca8fix(parse): more backslash galore #410622db6ddocs: add security policy8e51b00fix(parse): prevent overwriting proto in parseQuery()46c8ac0chore(build): bumping to version 1.19.6a1ad8bcfix(parse): treat backslash as forwardslash in scheme delimiterd7bb4cechore(build): bumping to version 1.19.5bf04ec5chore(build): bumping to version 1.19.4- Additional commits viewable 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.
If all status checks pass Dependabot will automatically merge this pull request.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
-
@dependabot rebasewill rebase this PR -
@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it -
@dependabot mergewill merge this PR after your CI passes on it -
@dependabot squash and mergewill squash and merge this PR after your CI passes on it -
@dependabot cancel mergewill cancel a previously requested merge and block automerging -
@dependabot reopenwill reopen this PR if it is closed -
@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually -
@dependabot ignore this major versionwill 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 versionwill 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 dependencywill 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 labelswill set the current labels as the default for future PRs for this repo and language -
@dependabot use these reviewerswill set the current reviewers as the default for future PRs for this repo and language -
@dependabot use these assigneeswill set the current assignees as the default for future PRs for this repo and language -
@dependabot use this milestonewill set the current milestone as the default for future PRs for this repo and language -
@dependabot badge mewill 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)
- Automerge options (never/patch/minor, and dev/runtime dependencies)
- Out-of-range updates (receive only lockfile updates, if desired)
- Security updates (receive only security updates, if desired)