CVE-2026-70466
Executive Summary
CVE-2026-70466 is a medium-severity vulnerability in Fortinet FortiWeb, affecting FortiWeb 8.0.0 through 8.0.2, 7.6.0 through 7.6.5, and all 7.4, 7.2, and 7.0 releases. The underlying flaw is an incomplete list of disallowed inputs (CWE-184), which may allow an unauthenticated remote attacker to cause improper access control. Successful exploitation could result in a WAF policy bypass and low-integrity impact to protected web applications. Based on the available data, no vendor patch has been identified, and no public proof-of-concept or CISA KEV inclusion has been confirmed.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The NVD record for CVE-2026-70466 describes the vulnerability as an “incomplete list of disallowed inputs” affecting FortiWeb. This maps directly to CWE-184, which occurs when a product relies on a denylist — a collection of denied inputs, signatures, or request patterns — but that list fails to cover every dangerous variation. In a Web Application Firewall such as FortiWeb, the intended function is to inspect HTTP traffic and block requests that match known malicious or policy-violating characteristics. If the list is incomplete, attacker-controlled requests can contain a representation or encoding of the same malicious intent that is not matched by the filter, allowing the request to continue toward the backend application.
The NVD entry currently contains a placeholder for the specific attack vector, so the precise request field, payload, and triggering mechanism are not publicly documented. However, the vulnerability class is well understood. CWE-184 bypasses typically succeed through obfuscation techniques such as double URL encoding, Unicode normalization, case variation, alternate path separators, malformed multipart boundaries, or mixed representations of reserved characters. A FortiWeb policy that denies a plain-text attack string may fail to deny the encoded or obfuscated equivalent, resulting in improper access control at the reverse proxy level.
The CVSS vector supplies important context: the vulnerability is exploitable over the network (AV:N), requires low attack complexity (AC:L), needs no privileges (PR:N), and needs no user interaction (UI:N). The scope is unchanged (S:U), and the impact is limited to low integrity (I:L); there is no confidentiality or availability impact in the published score. This suggests the exploitation outcome is more likely to be an unauthorized state-changing action or policy bypass rather than direct data theft or denial of service.
Because the attack vector is not specified, this report avoids fabricating concrete paths, parameters, or payloads. Network defenders should monitor for generic denylist-bypass behavior, as described in the detection section below.
Exploitation Scenarios
No public PoC is available; the following attack chain is inferred from the CWE-184 vulnerability class and the CVSS vector. It should be revised if the vendor names a specific attack vector.
Reconnaissance / target identification
The attacker first identifies a public-facing FortiWeb-protected web application or management interface. The target version can often be inferred from HTTP response headers, error pages, or exposed administrative login pages. If it falls within the affected version ranges, the attacker proceeds.Triggering the vulnerability
The attacker submits an HTTP request to a resource that should be denied by FortiWeb policy. Instead of using a signature or string that is explicitly present in the denylist, the attacker uses an alternate representation, such as double encoded characters, encoded path separators, or a mixed-case variation. Because the disallowed-input list is incomplete, the request is not blocked and is forwarded to the backend.Payload / execution at the vulnerability-class level
At the class level, any request the security policy is intended to block can be modified to evade the filter. Common examples include:- Replacing
/with%2f,%252f, or Unicode alternatives. - Inserting redundant encodings such as
%25%2e%25%2e%25%2f. - Using alternate backslash path separators, e.g.
..%5c, to traverse directories. - Applying mixed case to signature-based keywords.
These are illustrative CWE-184 bypass techniques, not confirmed PoC payloads for CVE-2026-70466.
- Replacing
Post-exploitation impact
If the bypass succeeds, an attacker could perform actions that FortiWeb was configured to prevent, resulting in low-integrity impact. Because the CVSS confidentiality impact is None, the flaw is unlikely to allow direct reading of sensitive data; instead, the attacker may modify application state, trigger unauthorized transactions, or access restricted functionality that relies on the WAF to enforce access control.
Impact Assessment
The business risk of CVE-2026-70466 centres on the failure of a security control. FortiWeb is deployed as a front-line web protection layer; if its denylist can be bypassed, every application behind the vulnerable device is potentially exposed to access-control violations that the organization believed were being blocked.
The CVSS subscore indicates:
- Confidentiality impact: None — no direct disclosure of sensitive data.
- Integrity impact: Low — the attacker may be able to modify data or perform unauthorized actions, with limited scope.
- Availability impact: None — no denial-of-service exposure.
- Attack prerequisites: Low complexity, no authentication, no user interaction, network-only.
The blast radius is therefore the entire suite of web applications and services fronted by a vulnerable FortiWeb deployment. In a typical deployment, these are externally reachable business applications, making the attack surface visible to any remote party. Even with low integrity impact, a WAF bypass can undermine compliance, red-team assessments, and defense-in-depth assumptions.
Detection Guidance
The following detections are based on generic CWE-184 bypass behavior because the specific attack vector is not public. They look for multiple encoding layers, encoded path traversal, and Unicode alternates in HTTP requests. Tune the rules to your environment to reduce false positives.
Sigma Rule
title: FortiWeb CVE-2026-70466 Denylist Encoding Bypass Attempt
id: f9c2d0a1-6f3e-4c2a-9a34-abc123def456
status: experimental
description: Detects HTTP URI encoding patterns commonly used to bypass incomplete disallowed-input lists in FortiWeb.
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-70466
- https://cwe.mitre.org/data/definitions/184.html
logsource:
category: webserver
product: generic
detection:
selection_uri_encodings:
cs-uri-query|contains:
- '%25%25'
- '%c0%ae'
- '%u002f'
- '..%5c'
- '%2e%2e%2f'
condition: selection_uri_encodings
fields:
- src_ip
- cs-method
- cs-uri-query
- sc-status
- cs-user-agent
level: medium
falsepositives:
- Legitimate web applications using multiple URL encoding layers for APIs
- Application-specific path traversal patterns that are normally allowed
YARA Rule
rule FortiWeb_CVE_2026_70466_Encoding_Bypass
{
meta:
author = "ValtersIT SOC"
description = "Detects encoded HTTP request patterns associated with CWE-184 denylist bypass attempts in FortiWeb logs"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-70466"
strings:
$enc_double = /%25[0-9a-fA-F]{2}/
$enc_unicode = /%u[0-9a-fA-F]{4}/
$enc_unicode_invalid = /%c0%ae/
$enc_backslash = /\.\.%5c/
$enc_traversal = /%2e%2e%2f/
condition:
any of ($enc_double, $enc_unicode, $enc_unicode_invalid, $enc_backslash, $enc_traversal)
}
Suricata IDS Rule
alert http $EXTERNAL_NET any -> $HOME_NET any (
msg:"ET EXPLOIT FortiWeb CVE-2026-70466 Denylist Bypass Attempt";
flow:established,to_server;
http.uri;
pcre:"/(%25%25|%c0%ae|%u[0-9a-fA-F]{4}|\.\.%5c|%2e%2e%2f)/i";
classtype:web-application-attack;
sid:202670466;
rev:1;
)
Elastic Detection
any where
http.request.uri like "*%25%25*" or
http.request.uri like "*%c0%ae*" or
http.request.uri like "*%u*" or
http.request.uri like "*%2e%2e%2f*" or
http.request.uri like "*.%5c*"
Splunk SPL Query
index=proxy sourcetype=stream:http
| regex _raw="(%25%25|%c0%ae|%u[0-9a-fA-F]{4}|\.\.%5c|%2e%2e%2f)"
| table _time src_ip dest_ip dest_port uri status
| sort - _time
Wazuh OSSEC Rule
<group name="web,">
<rule id="100366" level="10">
<regex>%25%25|%c0%ae|%u[0-9a-fA-F]{4}|\.\.%5c|%2e%2e%2f</regex>
<description>Possible FortiWeb CVE-2026-70466 WAF filter bypass attempt detected</description>
<group>web_application_attack,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence is 0/4: no vendor patch or fixed version has been identified from tracked sources. Organizations should take the following steps while awaiting an official fix.
Immediate mitigations
- Restrict access to FortiWeb management interfaces and administrative APIs to trusted, internal source IPs.
- Deploy an upstream perimeter filtering rule that blocks double-encoded URIs, encoded traversal sequences, and Unicode normalization attacks where legitimate traffic does not require them.
- Increase logging and alerting on HTTP requests containing multiple encoding layers, especially toward authentication, administrative, or sensitive application paths.
- Review all FortiWeb security policies to identify rules that rely exclusively on denylist matching; add compensating controls or require stronger authentication at the application layer.
Patch / upgrade steps
- No fixed FortiWeb release is currently available. Closely monitor Fortinet PSIRT advisories and subscribe to notification feeds.
- When a patched firmware is released, identify all running versions in your environment, test the upgrade in a non-production segment, and deploy to all affected FortiWeb appliances.
- Re-run security validation and WAF policy verification after patching to confirm that the bypass no longer succeeds.
Long-term hardening
- Move from denylist-only input validation toward a positive security model that allows only explicitly permitted characters, paths, and HTTP methods.
- Segment FortiWeb management interfaces from the general corporate network and never expose them directly to the internet.
- Perform regular web application security testing that includes WAF bypass fuzzing, encoding confusion, and CWE-184 attack variants.
- Maintain an incident-response playbook for WAF bypass indicators and integrate the detection rules above into your SIEM, IDS/IPS, and endpoint monitoring workflows.
- Monitor NVD and CISA KEV for updates to CVE-2026-70466, as exploitation status may change once the attack vector is fully disclosed.
References
- NVD Entry — https://nvd.nist.gov/vuln/detail/CVE-2026-70466
- MITRE CWE-184 — https://cwe.mitre.org/data/definitions/184.html
- Fortinet PSIRT Advisory Portal — https://www.fortiguard.com/psirt
- MITRE ATT&CK T1190 — https://attack.mitre.org/techniques/T1190/
- CISA Known Exploited Vulnerabilities Catalog — https://www.cisa.gov/known-exploited-vulnerabilities-catalog
No threat-actor campaigns, exploit-in-the-wild evidence, or public proof-of-concept code were identified in the provided data as of the time of writing.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.