CVE-2026-44930 — Apache CXF¶
Key facts
CVE-2026-44930 (Apache Software Foundation) is a Critical (9.8) vulnerability: Apache CXF. This entry ships ready-to-deploy detection and prevention rules (Snort) plus a detection-only PoC and a Docker test lab.
| CVE | CVE-2026-44930 |
| Severity | Critical (9.8) |
| Vendor | Apache Software Foundation |
| Product | Apache CXF |
| Detection / prevention | Snort |
| PoC | poc.py |
| Source | 2026/CVE-2026-44930/ |
Details¶
CVE-2026-44930 (Apache Software Foundation) is a Critical (9.8) vulnerability: Apache CXF. This entry ships a detection-only proof-of-concept (PoC), a Docker test lab, and ready-to-deploy detection and prevention rules (Snort) — see Detection and prevention below. Source: NVD record.
Overview¶
| Field | Value |
|---|---|
| CVE | CVE-2026-44930 |
| CVSS | 9.8 (Critical) |
| Vendor | Apache Software Foundation |
| Product | Apache CXF |
| Affected | Apache CXF versions using XKMS certificate repository with LDAP backend |
| Fixed | Upgrade Apache CXF to patched version; disable XKMS if unused |
Root Cause¶
Apache CXF's XML Key Management Specification (XKMS) service implementation passes user-controlled certificate query parameters directly into LDAP search filter strings without sanitization or escaping. When the XKMS service is configured to use an LDAP-backed certificate repository, values such as the subject distinguished name (DN), key ID, or certificate serial number supplied in XKMS Locate or Validate requests are interpolated into LDAP filter expressions. Special LDAP metacharacters (*, (, ), \, NUL) are not escaped per RFC 4515, resulting in a classic LDAP injection vulnerability (CWE-90).
Problem¶
An unauthenticated network attacker who can reach the XKMS endpoint can manipulate LDAP queries to:
- Retrieve arbitrary certificates: Inject filter wildcards (
*) to enumerate and extract all certificates stored in the LDAP directory, including internal CA certificates and service certificates not intended for external access. - Authentication bypass: In deployments where XKMS is used for certificate-based authentication, inject filters that cause the LDAP query to match unexpected entries, bypassing certificate validation checks.
- LDAP directory reconnaissance: Enumerate LDAP directory structure, user accounts, groups, and organizational units by injecting filter logic.
- Information disclosure: Extract sensitive attributes from LDAP objects beyond the certificate store if the CXF service account has broad LDAP read permissions.
Detection¶
Run the proof-of-concept against your Apache CXF XKMS endpoint:
The PoC sends a crafted XKMS LocateRequest with an injected LDAP filter fragment in the query criteria. A vulnerable server returns certificate entries that should not match the original query, or returns an error exposing LDAP filter syntax in the message.
Manual XKMS request test:
<xkms:LocateRequest xmlns:xkms="...">
<xkms:QueryKeyBinding>
<ds:KeyInfo><ds:X509Data><ds:X509SubjectName>
CN=test*)(objectClass=*
</ds:X509SubjectName></ds:X509Data></ds:KeyInfo>
</xkms:QueryKeyBinding>
</xkms:LocateRequest>
Remediation¶
- Upgrade Apache CXF: Update to the patched version of Apache CXF that implements proper LDAP filter escaping using the
LdapEncoder.filterEncode()method or equivalent before incorporating user input into search filters. - Disable XKMS if unused: If your deployment does not require XKMS certificate services, disable the endpoint in
cxf.xmlorbeans.xmlby removing the XKMS service bean registration. - Apply LDAP input sanitization: As an interim mitigation, deploy a CXF interceptor that strips or escapes LDAP special characters (
* ( ) \ NUL) from all XKMS request parameters. - Restrict LDAP service account permissions: Configure the LDAP bind account used by CXF to have read access only to the certificate subtree, preventing broader directory enumeration.
- Network-level access control: Restrict access to the XKMS endpoint at the network layer using firewall rules or reverse proxy ACLs, allowing only trusted certificate management systems.
- Audit LDAP access logs: Review LDAP server access logs for queries containing metacharacters or unusually broad wildcard patterns originating from the CXF service account.
References¶
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-44930
- Apache CXF Security Advisories: https://cxf.apache.org/security-advisories.html
- RFC 4515 - LDAP Search Filter Escaping: https://datatracker.ietf.org/doc/html/rfc4515
- OWASP LDAP Injection Prevention: https://cheatsheetseries.owasp.org/cheatsheets/LDAP_Injection_Prevention_Cheat_Sheet.html
Detection and prevention¶
Ready-to-deploy defensive rules for CVE-2026-44930, for authorized testing and blue-team detection engineering:
- Snort IDS signature —
prevention/snort.rules - Detection-only PoC —
poc.py - Rule notes —
prevention/README.md
References: NVD — CVE-2026-44930 · full write-up on the searchable site
Detection & prevention rules¶
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"CVE-2026-44930 Apache CXF XKMS LDAP injection special chars"; flow:to_server,established; content:"XKMS"; http_client_body; nocase; pcre:"/(?:\(\|\(|\(\&\(|\*\)|\\00|%00)/"; http_client_body; classtype:web-application-attack; sid:9002703; rev:1;)
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"CVE-2026-44930 Apache CXF XKMS LDAP filter injection in KeyName"; flow:to_server,established; content:"KeyName"; http_client_body; nocase; pcre:"/KeyName>[^<]*(?:\*|\(|\)|\\)[^<]*</i"; http_client_body; classtype:web-application-attack; sid:9002704; rev:1;)
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"CVE-2026-44930 Apache CXF XKMS certificate lookup LDAP null byte"; flow:to_server,established; content:"QueryKeyBinding"; http_client_body; nocase; pcre:"/(?:\\00|%00|\x00)/"; http_client_body; classtype:web-application-attack; sid:9002705; rev:1;)
Frequently asked questions¶
What is CVE-2026-44930?¶
CVE-2026-44930 (Apache Software Foundation) is a Critical (9.8) vulnerability: Apache CXF. This entry ships ready-to-deploy detection and prevention rules (Snort) plus a detection-only PoC and a Docker test lab.
How do I detect CVE-2026-44930?¶
Deploy the Snort detection rule included with this entry (see Detection & prevention rules below), then validate it against the detection-only PoC in the Docker test lab.
How do I block or mitigate CVE-2026-44930?¶
Upgrade to a fixed version per the vendor advisory; the NVD record lists the affected versions. Use the included PoC to verify your remediation.
Related CVEs¶
Other entries for the same vendor or product:
- CVE-2024-45387 — Apache Traffic Server (High)
- CVE-2025-24813 — Apache Tomcat (Critical)
For authorized security testing and research only. See the full source and NVD record.