CVE-2026-5430

WSO2 Multiple Products Path Traversal / Signature Verification Bypass (CVE-2026-5430)

Initial Access Collection Last updated:

Detects exploitation attempts against CVE-2026-5430, a KEV-listed vulnerability affecting multiple WSO2 products (API Manager, Identity Server, Enterprise Integrator, and others). The advertised weakness is a path traversal (directory traversal) issue with an associated improper verification of cryptographic signature (CWE-347) that allows attackers to bypass content/signature validation and access or write files outside the intended directory via crafted request paths. Exploitation typically manifests as encoded traversal sequences (../, %2e%2e%2f, ..%252f) in URI paths, multipart file-upload endpoints, or authentication callback parameters against WSO2 management/carbon and gateway endpoints. Because CISA lists this CVE as actively exploited (KEV), any successful traversal reaching sensitive files (e.g. repository/conf, wso2carbon keystores, deployment artifacts) should be treated as a probable compromise.

Vulnerability Intelligence

KEV — Known Exploited

What is CVE-2026-5430 WSO2 Multiple Products Path Traversal / Signature Verification Bypass (CVE-2026-5430)?

WSO2 Multiple Products Path Traversal / Signature Verification Bypass (CVE-2026-5430) (CVE-2026-5430) maps to the Initial Access and Collection tactics — the adversary is trying to get into your network in MITRE ATT&CK.

This page provides production-ready detection logic for WSO2 Multiple Products Path Traversal / Signature Verification Bypass (CVE-2026-5430), covering the data sources and telemetry it touches: IIS Logs, Web Proxy, Reverse Proxy. The queries below are rated critical severity at high confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.

MITRE ATT&CK

Tactic
Initial Access Collection
Microsoft Sentinel / Defender
kusto
let traversalPatterns = dynamic(["../","..\\","%2e%2e%2f","%2e%2e/","..%2f","%252e%252e%252f","..%255c","%c0%ae"]);
let wso2Paths = dynamic(["/carbon","/services/","/fileupload","/oauth2/","/api/am/","/authenticationendpoint","/repository/"]);
W3CIISLog
| where csUriStem has_any (wso2Paths) or csUriQuery has_any (wso2Paths)
| extend decodedPath = url_decode(strcat(csUriStem, "?", coalesce(csUriQuery, "-")))
| where decodedPath has_any (traversalPatterns) or decodedPath contains ".."
| where decodedPath has_any (dynamic(["repository/conf","wso2carbon",".jks","deployment.toml","secret-conf","web.xml","passwd","cipher-text"]))
| project TimeGenerated, cIP, csMethod, csUriStem, csUriQuery, decodedPath, scStatus, csUserAgent, sSiteName, Computer
| sort by TimeGenerated desc

Flags IIS/reverse-proxy logs fronting WSO2 products where a request to a WSO2 endpoint contains encoded or literal path-traversal sequences targeting sensitive configuration or keystore files.

critical severity high confidence

Data Sources

IIS Logs Web Proxy Reverse Proxy

Required Tables

W3CIISLog

False Positives

  • Legitimate vulnerability scanners (Nessus, Qualys, Nuclei) probing traversal payloads during authorized assessments
  • Security researchers or internal red-team validating patch status
  • URL-rewriting middleware that legitimately encodes '..' in benign query parameters unrelated to file access

Sigma rule & cross-platform mapping

The detection logic for WSO2 Multiple Products Path Traversal / Signature Verification Bypass (CVE-2026-5430) (CVE-2026-5430) above is provided in a vendor-neutral form so you can deploy it on any SIEM. The same logic is shipped here as native KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the following logsource:

logsource:
  category: network_connection
  product: windows

Browse the community-maintained Sigma rules for this technique:


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Encoded path traversal probe against WSO2 carbon endpoint

    Expected signal: Reverse-proxy/IIS access log entry with encoded '..%2f' sequences on a /carbon path targeting repository/conf/deployment.toml.

  2. Test 2Double-encoded traversal to keystore file

    Expected signal: Web access log with '%252f' sequences on /fileupload targeting wso2carbon.jks.

  3. Test 3Windows-hosted WSO2 traversal probe via PowerShell

    Expected signal: IIS/reverse-proxy log with '%255c' encoded backslash traversal on /services targeting secret-conf.


Response Playbook

Triage

  1. Confirm the target host runs an affected WSO2 product (API Manager, Identity Server, Enterprise Integrator, Micro Integrator) and identify its exact version against advisory WSO2-2026-5328.
  2. URL-decode the full request path/query from the alert and determine whether the traversal reached a sensitive file (repository/conf/*, *.jks keystore, deployment.toml, secret-conf) versus a probe that was blocked (check HTTP status: 200/206 with body bytes indicates likely success).
  3. Correlate the source IP against threat-intel and prior activity; determine if it is a known scanner, an authorized tester, or an unattributed external host.
  4. Pull the WSO2 carbon/gateway access and audit logs around the request time to see if the same source subsequently authenticated, uploaded artifacts, or accessed OAuth/token endpoints.

Containment

  1. If successful traversal to configuration or keystore files is confirmed, isolate the WSO2 node from untrusted networks and route traffic to a patched/known-good instance.
  2. Block the offending source IP(s) at the WAF/reverse proxy and add a WAF rule rejecting encoded '..' sequences on WSO2 endpoints as a stopgap until patching completes.
  3. Rotate any secrets that may have been exposed: wso2carbon.jks and internal keystore passwords, admin credentials, OAuth client secrets, and any tokens stored in exposed config.

Evidence Collection

  1. Preserve the raw web/reverse-proxy access logs and WSO2 carbon/audit logs covering the exploitation window before rotation or reimaging.
  2. Capture the affected WSO2 filesystem (repository/conf, repository/deployment, and keystore directories) with hashes to establish which files were read or modified.
  3. Export network flow/PCAP for the source IP to document data exfiltration volume and any follow-on connections.

Escalation Criteria

  • ! Escalate to incident response immediately if a traversal request returned sensitive keystore or configuration content (HTTP 200 with non-trivial response size).
  • ! Escalate if post-exploitation activity is observed — new artifact deployment, unexpected admin logins, OAuth client creation, or outbound C2 from the WSO2 host.

Investigation Guide

Forensic Artifacts

  • > WSO2 carbon access logs and wso2carbon audit logs (repository/logs/)
  • > Reverse-proxy/IIS/Nginx access logs containing the decoded traversal request
  • > Timestamps and hashes of files under repository/conf and keystore directories
  • > WAF event logs for blocked vs allowed traversal attempts

Tuning Guidance

Baseline authorized scanner source IPs (internal vuln-management ranges, contracted pen-test hosts) and exclude them or route their alerts to a low-severity queue. Ensure logging captures the full raw URI and query string BEFORE any proxy normalization strips '..' sequences, otherwise decoded-traversal detection will miss double-encoded payloads. If your reverse proxy already rejects encoded traversal with a 400/403, prioritize alerts on requests that returned 200/206 to focus on likely-successful exploitation.


Hunting Queries

Surfaces repeated traversal attempts from a single source that target WSO2 keystore/config files, indicating deliberate exploitation rather than a one-off scan.

Hunting — KQL
kql
W3CIISLog | extend d = url_decode(strcat(csUriStem,"?",coalesce(csUriQuery,"-"))) | where d contains ".." and d has_any("wso2carbon","repository/conf",".jks","deployment.toml") | summarize hits=count(), files=make_set(d) by cIP | where hits > 1
Hunting — SPL
spl
index=web (uri_path="*/carbon*" OR uri_path="*/services/*") | eval d=urldecode(uri_path."?".coalesce(uri_query,"-")) | where match(d,"(?i)\.\.") AND match(d,"(?i)(wso2carbon|repository/conf|\.jks|deployment\.toml)") | stats count values(d) as payloads by src_ip

Atomic Red Team Tests

Test 1 Encoded path traversal probe against WSO2 carbon endpoint
linux

Sends a single-encoded traversal request targeting a WSO2 configuration file to validate detection of decoded '../' sequences on WSO2 endpoints.

Command

bash
curl -sk 'https://wso2-lab.internal:9443/carbon/..%2f..%2f..%2frepository%2fconf%2fdeployment.toml' -o /tmp/wso2_trav_test.out

Cleanup

bash
rm -f /tmp/wso2_trav_test.out

Expected Telemetry

Reverse-proxy/IIS access log entry with encoded '..%2f' sequences on a /carbon path targeting repository/conf/deployment.toml.

Expected Detection

KQL/SPL rule fires on decoded traversal reaching 'repository/conf' / 'deployment.toml'.

Test 2 Double-encoded traversal to keystore file
linux

Issues a double-encoded (%252e) traversal request aimed at the wso2carbon.jks keystore to test double-decoding logic.

Command

bash
curl -sk 'https://wso2-lab.internal:9443/fileupload/..%252f..%252frepository%252fresources%252fsecurity%252fwso2carbon.jks' -o /tmp/wso2_jks_test.out

Cleanup

bash
rm -f /tmp/wso2_jks_test.out

Expected Telemetry

Web access log with '%252f' sequences on /fileupload targeting wso2carbon.jks.

Expected Detection

Detection matches on '%252e'/'wso2carbon'/'.jks' patterns after decoding.

Test 3 Windows-hosted WSO2 traversal probe via PowerShell
windows

Uses PowerShell to send a backslash-encoded traversal against a Windows-hosted WSO2 gateway to validate cross-platform log coverage.

Command

powershell
powershell -c "try { Invoke-WebRequest -Uri 'https://wso2-lab.internal:8243/services/..%255c..%255crepository%255cconf%255csecret-conf%255csecret.properties' -SkipCertificateCheck -OutFile $env:TEMP\wso2_win_test.out } catch {}"

Cleanup

powershell
powershell -c "Remove-Item -Force $env:TEMP\wso2_win_test.out -ErrorAction SilentlyContinue"

Expected Telemetry

IIS/reverse-proxy log with '%255c' encoded backslash traversal on /services targeting secret-conf.

Expected Detection

Rule matches encoded backslash traversal ('..%255c') reaching 'secret-conf'.

Related Detections