Skip to content
Heist/ feed
Back to feed
Critical

Feathersjs has an OAuth Callback Account Takeover

Type: advisorySources: OSV

Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. From 5.0.0 to before 5.0.42, an unauthenticated attacker can send a crafted GET request directly to /oauth/:provider/callback with a forged profile in the query string. The OAuth service's authentication payload has a fallback chain that reaches params.query (the raw request query) when Grant's session/state responses are empty. Since the attacker never initiated an OAuth authorize flow, Grant has no session to work with and produces no response, so the fallback fires. The forged profile then drives entity lookup and JWT minting. The attacker gets a valid access token for an existing user without ever contacting the OAuth provider. This vulnerability is fixed in 5.0.42.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-29792
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 13:13 UTC · Revision 1

Source evidence

Feathersjs has an OAuth Callback Account Takeover

core-osv · Original source

Published 10 Mar 2026, 20:06 UTC

Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. From 5.0.0 to before 5.0.42, an unauthenticated attacker can send a crafted GET request directly to /oauth/:provider/callback with a forged profile in the query string. The OAuth service's authentication payload has a fallback chain that reaches params.query (the raw request query) when Grant's session/state responses are empty. Since the attacker never initiated an OAuth authorize flow, Grant has no session to work with and produces no response, so the fallback fires. The forged profile then drives entity lookup and JWT minting. The attacker gets a valid access token for an existing user without ever contacting the OAuth provider. This vulnerability is fixed in 5.0.42.

osv:CVE-2026-29792
Complete source record
{
  "id": "87d93b44e6a33feaa5c00180507833ebd43e6841df509161f724adb58cb1af0e",
  "url": "https://osv.dev/vulnerability/CVE-2026-29792",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Feathersjs has an OAuth Callback Account Takeover",
    "summary": "Feathersjs is a framework for creating web APIs and real-time applications with TypeScript or JavaScript. From 5.0.0 to before 5.0.42, an unauthenticated attacker can send a crafted GET request directly to /oauth/:provider/callback with a forged profile in the query string. The OAuth service's authentication payload has a fallback chain that reaches params.query (the raw request query) when Grant's session/state responses are empty. Since the attacker never initiated an OAuth authorize flow, Grant has no session to work with and produces no response, so the fallback fires. The forged profile then drives entity lookup and JWT minting. The attacker gets a valid access token for an existing user without ever contacting the OAuth provider. This vulnerability is fixed in 5.0.42.",
    "evidence": "osv:CVE-2026-29792",
    "products": [],
    "severity": "critical",
    "structured": {
      "id": "CVE-2026-29792",
      "aliases": [
        "CVE-2026-29792",
        "GHSA-wg9x-qfgw-pxhj"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/feathersjs/feathers",
              "type": "GIT",
              "events": [
                {
                  "introduced": "90caf635aec850550b9d37bea2762af959d9e8d5"
                },
                {
                  "fixed": "fe1f2bc8bb2b55762be1a676ac98eb89f2f2ab9d"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "5.0.0"
                      },
                      {
                        "fixed": "5.0.42"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "cpe": "cpe:2.3:a:feathersjs:feathers:*:*:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "5.0.0"
                      },
                      {
                        "fixed": "5.0.42"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v5.0.41",
            "v5.0.40",
            "v5.0.39",
            "v5.0.38",
            "v5.0.37",
            "v5.0.36",
            "v5.0.35",
            "v5.0.34",
            "v5.0.33",
            "v5.0.32",
            "v5.0.31",
            "v5.0.30",
            "v5.0.29",
            "v5.0.28",
            "v5.0.27",
            "v5.0.26",
            "v5.0.25",
            "v5.0.24",
            "v5.0.23",
            "v5.0.22",
            "v5.0.21",
            "v5.0.20",
            "v5.0.19",
            "v5.0.18",
            "v5.0.17",
            "v5.0.16",
            "v5.0.15",
            "v5.0.14",
            "v5.0.13",
            "v5.0.12",
            "v5.0.11",
            "v5.0.10",
            "v5.0.9",
            "v5.0.8",
            "v5.0.7",
            "v5.0.6",
            "v5.0.5",
            "v5.0.4",
            "v5.0.3",
            "v5.0.2",
            "v5.0.1",
            "v5.0.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-29792.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:28.880116878Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29792.json",
        "https://github.com/feathersjs/feathers/security/advisories/GHSA-wg9x-qfgw-pxhj",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-29792"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-287"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/29xxx/CVE-2026-29792.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-29792",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 495720,
  "published_at": "2026-03-10T20:06:34.801+00:00"
}