CVE-2026-81205
Executive Summary
CVE-2026-81205 is an LDAP Injection vulnerability (CWE-90) in the Miniorange LDAP / Active Directory Integration module for Drupal, affecting all versions from 0.0.0 through 2.2.1. The flaw allows an unauthenticated, remotely reachable attacker to inject special elements into LDAP queries, potentially exposing directory information. With a CVSS base score of 5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N), the primary impact is limited confidentiality loss; integrity and availability are unaffected.
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 vulnerability class is Improper Neutralization of Special Elements used in an LDAP Query, mapped to CWE-90. This occurs when user-supplied input is concatenated or interpolated into an LDAP search filter without proper escaping or parameterization. The LDAP / Active Directory Integration module is designed to bind Drupal authentication and authorization workflows to an LDAP directory (e.g., Active Directory), meaning it constructs LDAP search filters based on user-controlled values such as usernames, group names, or search terms.
Because the flaw is pre-authentication (PR:N) and network-reachable (AV:N) with low attack complexity (AC:L) and no user interaction (UI:N), an attacker can send crafted input to the affected endpoints to manipulate the structure of the resulting LDAP filter. Typical LDAP injection payloads use metacharacters such as *, (, ), \, |, and & to alter filter logic — for example, turning a lookup for a specific username into a wildcard match that returns all entries, or modifying an AND condition into an OR. CVSS confidentiality impact is Low (C:L), consistent with partial directory information disclosure rather than full data exfiltration; integrity (I:N) and availability (A:N) are not impacted.
The NVD description does not specify the exact function names, parameters, or request endpoints involved. No code-level details beyond the version range and vulnerability class are available. The attack surface is the module's LDAP query construction path, typically invoked during authentication, user lookup, or group resolution. No public Nuclei template or exploit code is available, though the PoC status is listed as Public; the absence of a template means detection must rely on generic LDAP-injection indicators.
Exploitation Scenarios
Reconnaissance: The attacker identifies a Drupal site running the Miniorange LDAP / Active Directory Integration module, versions 0.0.0 through 2.2.1. Fingerprinting may be performed via HTTP response headers, Drupal module paths, or Shodan queries as listed above. No authentication is required (PR:N), so the attacker can probe unauthenticated endpoints that route to LDAP-backed logic.
Triggering the flaw: The attacker submits input containing LDAP filter metacharacters into any user-controllable field that is used to build an LDAP query. The exact parameter names are not disclosed in the NVD description, so the attacker would fuzz login, search, or group-lookup fields that reach the LDAP integration. The injection is triggered when the module constructs a filter using this input without neutralization.
Payload/execution: At the vulnerability-class level, the attacker crafts a value containing LDAP special elements — for example, a wildcard or boolean operator — to alter the query semantics. This can cause the filter to match unintended directory entries, bypass intended comparisons, or return additional attributes. Since the confidentiality impact is Low, the expected outcome is limited disclosure of directory data rather than full database compromise.
Post-exploitation: An attacker may use the disclosed information (usernames, group memberships, directory structure hints) for further targeted attacks against the Drupal site or the connected Active Directory. No public PoC is available; the attack chain is inferred from the LDAP injection vulnerability class and the CVSS vector.
Impact Assessment
Business impact centers on information disclosure from the connected LDAP/Active Directory directory. Because the module integrates with enterprise identity infrastructure, a successful injection may reveal usernames, group names, or organizational structure — valuable for reconnaissance and social engineering. The CVSS subscores indicate: Attack Vector Network (remotely exploitable), Attack Complexity Low (no special conditions), Privileges Required None (unauthenticated), User Interaction None, Scope Unchanged, Confidentiality Low, Integrity None, Availability None. Blast radius is limited to the confidentiality of LDAP-sourced data; there is no evidence of authentication bypass, code execution, or service disruption. EPSS is 0.00330 (26.1st percentile), indicating a low predicted likelihood of exploitation in the wild. CISA KEV status is NO — no known active exploitation at time of writing. However, because the module connects Drupal to Active Directory, even limited disclosure can aid lateral movement planning in enterprise environments.
Detection Guidance
Sigma Rule
title: Potential LDAP Injection Attempt Against Drupal Miniorange LDAP Integration
id: 8f3c2a1e-4b7d-4c9e-9a2f-1d5e6f7a8b9c
status: experimental
description: Detects LDAP metacharacters in HTTP requests targeting Drupal LDAP/AD Integration endpoints
author: valtersit.com
logsource:
category: webserver
detection:
selection_method:
cs-method:
- GET
- POST
selection_uri:
cs-uri-query|contains:
- 'ldap'
- 'miniorange'
- 'ad_integration'
selection_payload:
cs-uri-query|contains:
- '('
- ')'
- '*'
- '|'
- '&'
- '\'
condition: selection_method and selection_uri and selection_payload
falsepositives:
- Legitimate search queries containing parentheses or asterisks
level: medium
tags:
- attack.initial_access
- attack.t1190
- cwe.90
YARA Rule
rule CVE_2026_81205_Drupal_LDAP_Injection
{
meta:
author = "valtersit.com"
description = "Detects LDAP injection patterns in HTTP request artifacts"
cve = "CVE-2026-81205"
cwe = "CWE-90"
date = "2026-06-01"
strings:
$ldap1 = "ldap" nocase
$mod1 = "miniorange" nocase
$inj1 = ")(|("
$inj2 = "*)(uid=*"
$inj3 = "*)(objectClass=*"
$inj4 = "%29%28%7C%28"
$inj5 = "%2A%29%28"
condition:
(uint16(0) == 0x4854 or uint16(0) == 0x4f50) and
any of ($ldap1, $mod1) and
any of ($inj*)
}
Suricata IDS Rule
alert http any any -> any any (msg:"CVE-2026-81205 Drupal Miniorange LDAP Integration LDAP Injection Attempt"; flow:established,to_server; http.uri; content:"ldap"; nocase; http.uri; content:"*"; http.uri; content:"("; http.uri; content:")"; http.uri; content:"|7C|"; distance:0; reference:cve,2026-81205; reference:url,valtersit.com/cve-2026-81205; classtype:web-application-attack; sid:202681205; rev:1;)
Elastic Detection
sequence by source.ip with maxspan=10s
[network where http.request.method in ("GET", "POST") and url.path : "*ldap*"]
[network where http.request.method in ("GET", "POST") and wildcard(url.query, "*)*(*") and wildcard(url.query, "*|*")]
Splunk SPL Query
index=web sourcetype=access_combined
| eval uri_raw = urldecode(uri_query)
| where (match(uri, "(?i)ldap") OR match(uri, "(?i)miniorange"))
AND (match(uri_raw, "\*\(") OR match(uri_raw, "\(\|") OR match(uri_raw, "\)\(") OR match(uri_raw, "objectClass"))
| stats count min(_time) as first_seen max(_time) as last_seen by src_ip, uri, status
| where count > 3
| sort - count
Wazuh OSSEC Rule
<group name="web,drupal,ldap_injection,">
<rule id="100812" level="10">
<if_sid>31100</if_sid>
<id>^40[0-9]$</id>
<match>ldap|miniorange</match>
<regex_type>pcre2</regex_type>
<regex>\(|\*\)\s*\(|\|\s*\(|objectClass=</regex>
<description>CVE-2026-81205: LDAP injection attempt against Drupal LDAP/Active Directory Integration</description>
<mitre>
<id>T1190</id>
</mitre>
<group>cve_2026_81205,</group>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 2/4 (CLAIMED — single source claims patch; not independently confirmed). No vendor fix or workaround is published.
Immediate mitigations:
- Disable the LDAP / Active Directory Integration module if it is not required for business operations.
- If the module must remain enabled, restrict network access to Drupal administrative and authentication endpoints via WAF or reverse proxy allow-listing.
- Deploy WAF rules that block LDAP metacharacters (
(,),\,*,|,&) in user-supplied parameters routed to the LDAP integration. - Monitor directory server logs for anomalous filter patterns (wildcards, boolean operators in unexpected fields).
Patch/upgrade steps:
- The OSV source claims a fix is available beyond version 2.2.1. Verify the current module release on Drupal.org and upgrade to the latest available version.
- Because the patch confidence is CLAIMED and not independently confirmed, validate the fix by testing the module's query construction with LDAP metacharacter input in a staging environment before relying on it.
- Track the vendor (Miniorange / Drupal module maintainers) for an official security advisory.
Long-term hardening:
- Enforce parameterized LDAP queries or strict escaping of all user input used in LDAP filters (e.g., RFC 4515 escaping).
- Apply the principle of least privilege to the LDAP bind account used by the module, limiting readable attributes.
- Keep Drupal core and all contributed modules current; subscribe to Drupal security advisories.
- Conduct periodic code review or SAST of identity-integration modules for injection flaws.
References
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-81205
- OSV (patch claim source): https://osv.dev/vulnerability/CVE-2026-81205
- CWE-90: https://cwe.mitre.org/data/definitions/90.html
- Drupal Security Advisories: https://www.drupal.org/security
- CISA KEV Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog (CVE not listed as of report date)
No known threat actor campaigns or exploit-in-the-wild evidence were identified. EPSS 0.00330 (26.1st percentile) and CISA KEV = NO indicate low current exploitation activity. PoC status is listed as Public, but no Nuclei template or exploit code is available, so detection should focus on generic LDAP injection indicators rather than CVE-specific signatures.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.