Feathers has an origin validation bypass via prefix matching
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Passive
- Attack complexity
- High
- Attack requirements
- None
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-346.
Summary
Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. In versions 5.0.39 and below, origin validation uses startsWith() for comparison, allowing attackers to bypass the check by registering a domain that shares a common prefix with an allowed origin.The getAllowedOrigin() function checks if the Referer header starts with any allowed origin, and this comparison is insufficient as it only validates the prefix. This is exploitable when the origins array is configured and an attacker registers a domain starting with an allowed origin string (e.g., https://target.com.attacker.com bypasses https://target.com). On its own, tokens are still redirected to a configured origin. However, in specific scenarios an attacker can initiate the OAuth flow from an unauthorized origin and exfiltrate tokens, achieving full account takeover. This issue has bee fixed in version 5.0.40.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| feathersjs | feathers | before 5.0.40 | 5.0.40 | Patch available | CNA |
| — | @feathersjs/authentication-oauth (npm) | before 5.0.40 | 5.0.40 | Patch available | GHSA-mp4x-c34x-wv3x |
- feathers Vendorfeathersjs Affected before 5.0.40 Fixed in 5.0.40 Patch available CNA
- @feathersjs/authentication-oauth (npm) Vendor— Affected before 5.0.40 Fixed in 5.0.40 Patch available GHSA-mp4x-c34x-wv3x
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:feathersjs:feathers:*:*:*:*:*:node.js:*:* | before 5.0.40 | Vulnerable | feathersjs |
- cpe:2.3:a:feathersjs:feathers:*:*:*:*:*:node.js:*:* Versions before 5.0.40 Vulnerable ·feathersjs
Remediation
- Fix · CNA feathers (feathersjs) Fixed in 5.0.40
- Fix · GHSA-mp4x-c34x-wv3x @feathersjs/authentication-oauth (npm) Fixed in 5.0.40 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-27192
- 2026-10-03 Alias added: GHSA-mp4x-c34x-wv3x
References
Advisory 2
More feathersjs Feathers vulnerabilities
- TI-2023-19332 feathersjs socket handler allows abusing implicit toString CVSS 3.1HIGH 7.5
- TI-2026-23379 NoSQL Injection via WebSocket id Parameter in MongoDB Adapter CVSS 4.0CRITICAL 9.3
- TI-2026-23378 Feathersjs has an OAuth Callback Account Takeover CVSS 4.0CRITICAL 9.3
- TI-2026-21630 Feathers exposes internal headers via unencrypted session cookie CVSS 4.0HIGH 8.2
- TI-2026-21628 Feathers: Open Redirect in OAuth callback enables account takeover CVSS 4.0HIGH 7.4
Sources
- CVE-2026-27192 · CVE Program
- CVE-2026-27192 · NVD
- FIRST EPSS
- GHSA-mp4x-c34x-wv3x · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences