Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend HTTP request with crafted X-Original-URI header
-
DeliveryPathChecker reads client-controlled header unconditionally
-
ExploitHeader path matches default ALLOW rule (e.g., /.well-known/)
-
ExecutionBot challenge skipped by policy engine
-
PersistRequest forwarded to upstream resource
-
ImpactAttacker scrapes or interacts with protected upstream
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Access control enforcement
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that Anubis is deployed as an HTTP intermediary (reverse proxy or subrequest auth endpoint) accessible to the attacker over the network, and that the target deployment uses the default data/common/keep-internet-working.yaml policy or any other policy containing ALLOW rules with path regex patterns the attacker can match via a crafted header value (e.g., ^/\.well-known/.*$, ^/robots\.txt$). The vulnerability is present in both direct-proxy and subrequest (nginx/Traefik) deployment modes because the header was read unconditionally. The attacker must be able to send HTTP requests with arbitrary headers to Anubis; if the upstream proxy strips or blocks X-Original-URI before reaching Anubis, exploitation is prevented. Exploitation is limited to Anubis versions 1.22.0-pre-1.26.0-pre1 and is not possible against installations that have removed all regex ALLOW rules from their policy configuration. |
| Impact | The NVD-assigned CVSS 3.1 score of 5.8 (Medium) with vector AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N accurately characterizes the real-world risk profile. Attack complexity is genuinely low - exploitation requires only a single HTTP header, no authentication, and no user interaction, making this automatable and accessible to unsophisticated actors. The scope change (S:C) reflects that Anubis itself is the security control, and bypassing it exposes upstream components outside Anubis's own trust boundary. Confidentiality impact is capped at Low (C:L) because the bypass grants access to upstream resources but does not directly exfiltrate data from Anubis itself. EPSS data was not provided in the intelligence feed, so exploitation probability cannot be numerically quantified. There is no CISA KEV listing and no public POC, which reduces immediate urgency. However, the bypass is mechanically trivial - any scripted HTTP client can replicate it - and Anubis deployments exist specifically to protect against high-volume automated scraping, meaning successful bypass defeats the product's primary purpose entirely. Defenders using Anubis to gate access to protected upstream resources should treat this as operationally high priority despite the medium CVSS score. |
| Exploit ScenarioDerived | An attacker targeting a site protected by Anubis sends an HTTP GET request to any Anubis-guarded endpoint and includes the header X-Original-URI: /.well-known/acme-challenge/bypass. Anubis reads the client-supplied header, evaluates the path against the default ALLOW rules in keep-internet-working.yaml, matches the ^/\.well-known/.*$ pattern, and forwards the request to the upstream resource without issuing a bot challenge. The attacker can then scrape or interact with the upstream service at will, defeating the entire purpose of the Anubis deployment. No exploit code is publicly available but the technique is fully described by the CVE and patch diff. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 15, 2026
Challenge bypass in Anubis Web AI Firewall (versions 1.22.0 through pre-1.26.0-pre1) allows unauthenticated remote HTTP clients to circumvent bot-challenge enforcement by supplying a crafted X-Original-URI header. PathChecker.Check() in lib/policy/checker.go unconditionally trusted this client-controlled header over the actual request path, enabling any client to match default ALLOW rules (e.g., ^/\.well-known/.*$) and reach upstream resources without completing the Anubis challenge. No active exploitation confirmed (not in CISA KEV) and no public exploit code identified at time of analysis, but the bypass is trivially reproducible with a single HTTP header manipulation.
RemediationAI
Upgrade Anubis to version 1.26.0-pre1 or later, available at https://github.com/TecharoHQ/anubis/releases/tag/v1.26.0-pre1. The fix (commit 276b537776b281b1c4e01421435bc03ade3d8fc4, PR #1630) introduces a subRequestMode flag that restricts trust of X-Original-URI and X-Forwarded-Uri headers to explicitly configured subrequest deployments only. If immediate upgrade is not feasible, a compensating control is to configure the upstream proxy (nginx, Traefik) to strip or rewrite the X-Original-URI and X-Forwarded-Uri headers on inbound requests before they reach Anubis, preventing clients from injecting arbitrary values; note that this workaround will break legitimate subrequest-mode path matching until the patch is applied. Alternatively, operators can remove or narrow ALLOW rules in data/common/keep-internet-working.yaml to reduce the set of paths that can be targeted, though this may interfere with ACME certificate validation and other legitimate well-known path traffic.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Anubis is an open-source Go-based reverse-proxy firewall (CPE: cpe:2.3:a:techarohq:anubis:*:*:*:*:*:*:*:*) designed to intercept and challenge HTTP clients suspected of being scrapers or bots before passing traffic to upstream services. It supports two deployment modes: direct proxy and subrequest mode (used by nginx auth_request and Traefik forwardAuth middleware). In subrequest mode, the actual user-requested path is communicated to Anubis via the X-Original-URI (nginx) or X-Forwarded-Uri (Traefik) headers. The root cause (CWE-284: Improper Access Control) is that PathChecker.Check() in lib/policy/checker.go read X-Original-URI unconditionally - regardless of whether Anubis was actually operating in subrequest mode - and used that header value to evaluate path-matching ALLOW rules defined in data/common/keep-internet-working.yaml. An attacker could therefore set X-Original-URI to a well-known path (e.g., /.well-known/acme-challenge/x) and have it matched against ALLOW rules, bypassing the challenge entirely. The fix introduced a subRequestMode flag that gates header trust, ensuring X-Original-URI and X-Forwarded-Uri are only consulted when subrequest mode is explicitly configured.
Know when Anubis gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
Network exploitable via single HTTP header (AV:N/AC:L/PR:N/UI:N); scope changes because bypass exposes upstream systems beyond Anubis; confidentiality limited to indirect upstream access (C:L), no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Anubis is a Web AI Firewall Utility that challenges users' connections in order to protect upstream resources from scraper bots. From 1.22.0 until 1.26.0-pre1, lib/policy/checker.go PathChecker.Check() trusted the client-controlled X-Original-URI header before matching r.URL.Path, allowing an HTTP client to match default data/common/keep-internet-working.yaml ALLOW rules such as ^/\.well-known/.*$ and bypass the Anubis challenge. This issue is fixed in version 1.26.0-pre1.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
EUVD-2026-44819
GHSA-6wcg-mqvh-fcvg
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB