Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Nov 20, 2025

This PR contains the following updates:

Package Change Age Confidence
koa (source) 2.16.2 -> 2.16.3 age confidence

GitHub Vulnerability Alerts

CVE-2025-62595

Summary:

A bypass was discovered in the Koa.js framework affecting its back redirect functionality. In certain circumstances, an attacker can manipulate the Referer header to force a user’s browser to navigate to an external, potentially malicious website. This occurs because the implementation incorrectly treats some specially crafted URLs as safe relative paths. Exploiting this vulnerability could allow attackers to perform phishing, social engineering, or other redirect-based attacks on users of affected applications.

This vulnerability affects the code referenced in GitHub Advisory GHSA-jgmv-j7ww-jx2x (which is tracked as CVE‑2025‑54420).

Details:

The patched code attempts to treat values that startWith('/') as safe relative paths and only perform origin checks for absolute URLs. However, protocol‑relative URLs (those beginning with //host) also start with '/' and therefore match the startsWith('/') branch. A protocol‑relative referrer such as //evil.com with trailing double-slash is treated by the implementation as a safe relative path, but browsers interpret Location: //evil.com as a redirect to https://evil.com (or http:// based on context).
This discrepancy allows an attacker to supply Referer: //evil.com and trigger an external redirect - bypassing the intended same‑origin protection.

Proof of concept (PoC):

Affected line of code: https://github.com/koajs/koa/blob/master/lib/response.js#L326
The problematic logic looks like:

3

Request with a protocol‑relative Referer:
curl -i -H "Referer: //haymiz.dev" http://127.0.0.1:3000/test

1

Vulnerable response will contain:
HTTP/1.1 302 Found
Location: //haymiz.dev

A browser receiving that Location header navigates to https://haymiz.dev (or http:// depending on context), resulting in an open redirect to an attacker‑controlled host:

2

Recommendation / Patch:

  • Do not treat //host as a safe relative path. Explicitly exclude protocol‑relative values from any relative‑path branch.
  • Normalize the Referer by resolving it with a base (e.g., new URL(rawRef, ctx.href)), then compare resolved.origin (scheme+host+port) to ctx.origin (or ctx.host plus scheme/port) before allowing the redirect.

Impact:

An attacker who can cause a victim to visit a specially crafted link (or inject a request with a controlled Referer) can cause the victim to be redirected to an attacker‑controlled domain. This can be used for phishing, social engineering, or to bypass some protection rules that rely on same‑origin navigation.


Release Notes

koajs/koa (koa)

v2.16.3

Compare Source

What's Changed

Full Changelog: koajs/koa@v2.16.2...v2.16.3


Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the security label Nov 20, 2025
@renovate renovate bot requested review from a team and nick-livefront November 20, 2025 16:47
@bitwarden-bot bitwarden-bot changed the title [deps] Vault: Update koa to v2.16.3 [SECURITY] [PM-28526] [deps] Vault: Update koa to v2.16.3 [SECURITY] Nov 20, 2025
@bitwarden-bot
Copy link

Internal tracking:

@renovate renovate bot changed the title [PM-28526] [deps] Vault: Update koa to v2.16.3 [SECURITY] [deps] Vault: Update koa to v2.16.3 [SECURITY] Nov 20, 2025
@codecov
Copy link

codecov bot commented Nov 20, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 41.25%. Comparing base (81453ed) to head (e5fe538).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #17514   +/-   ##
=======================================
  Coverage   41.25%   41.25%           
=======================================
  Files        3546     3546           
  Lines      102040   102040           
  Branches    15308    15308           
=======================================
  Hits        42099    42099           
+ Misses      58177    58176    -1     
- Partials     1764     1765    +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@renovate renovate bot force-pushed the renovate/npm-koa-vulnerability branch from e5fe538 to 81882c2 Compare November 21, 2025 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants