CVE-2026-53658 Overview
CVE-2026-53658 is an LDAP Injection vulnerability [CWE-90] in Hyperledger Fabric CA, a Certificate Authority for Hyperledger Fabric. Versions prior to 1.5.21 fail to escape LDAP metacharacters in usernames supplied through HTTP Basic authentication. The Client.GetUser function in lib/server/ldap/client.go inserts the raw username into the LDAP uid search UserFilter. An unauthenticated attacker with network access to the CA enrollment endpoint can manipulate the LDAP search executed before password validation. Only deployments configured with an LDAP backend are affected. The issue is fixed in version 1.5.21.
Critical Impact
An unauthenticated network attacker can alter LDAP search queries to steer authentication attempts toward a victim account on Fabric CA deployments backed by LDAP.
Affected Products
- Hyperledger Fabric CA versions prior to 1.5.21
- Fabric CA deployments configured with an LDAP authentication backend
- Fabric CA enrollment endpoints exposed to network clients
Discovery Timeline
- 2026-09-15 - CVE-2026-53658 published to NVD
- 2026-09-16 - Last updated in NVD database
Technical Details for CVE-2026-53658
Vulnerability Analysis
The vulnerability resides in Client.GetUser within lib/server/ldap/client.go. Fabric CA constructs an LDAP search filter using the username submitted through HTTP Basic authentication. The username is concatenated into the UserFilter template targeting the uid attribute without escaping LDAP special characters such as (, ), *, \, and NUL. An attacker who reaches the CA enrollment endpoint can inject filter syntax that changes the semantics of the LDAP search. Because the search runs before password validation, the injected filter influences which directory entry the CA subsequently attempts to bind against. This creates a path to redirect authentication attempts toward a victim account chosen by the attacker.
Root Cause
The root cause is missing input sanitization when building an LDAP query from untrusted user input. Fabric CA trusts the Basic authentication username as a filter fragment, violating the guidance in RFC 4515 for escaping LDAP filter assertion values. This is a classic LDAP Injection weakness tracked as CWE-90.
Attack Vector
Exploitation requires network access to the Fabric CA enrollment endpoint and an LDAP-backed configuration. No prior authentication, credentials, or user interaction are required. The attacker sends an HTTP request with a crafted Basic authentication header whose username contains LDAP filter metacharacters. The server incorporates the payload into the search filter, altering which entry the directory returns for subsequent password validation.
return val2
}
+// Connection to an LDAP server.
+type Connection interface {
+ // Search using the given search request.
+ Search(searchRequest *ldap.SearchRequest) (*ldap.SearchResult, error)
+ // Close the connection.
+ Close() error
+}
+
// Client is an LDAP client
type Client struct {
Host string
Source: GitHub Commit d379df8 — introduces the abstraction used alongside filter escaping to prevent injection in lib/server/ldap/client.go.
Detect Identity Attacks the Moment Authentication Fails
Singularity™ Identity surfaces credential misuse, lateral movement, and privilege escalation in real time, so you can contain the breach before it spreads.
Stop Identity AttacksDetection Methods for CVE-2026-53658
Indicators of Compromise
- HTTP requests to the Fabric CA enrollment endpoint (for example /enroll) containing Basic authentication usernames with LDAP metacharacters such as (, ), *, |, &, or \.
- LDAP server logs showing malformed or unexpectedly broad uid search filters originating from the Fabric CA service account.
- Authentication attempts against user accounts that do not match the username submitted at the CA endpoint.
Detection Strategies
- Inspect Fabric CA access logs for enrollment requests whose decoded Basic authentication username contains characters outside the expected identifier set.
- Correlate CA enrollment events with downstream LDAP search and bind operations to detect filter drift.
- Alert on repeated failed enrollments from a single source that iterate through crafted username payloads suggestive of filter probing.
Monitoring Recommendations
- Enable verbose logging on both Fabric CA and the LDAP backend to capture full search filter strings during investigation windows.
- Monitor the Fabric CA version in use across environments and flag any instance running a release prior to 1.5.21.
- Track network exposure of the CA enrollment endpoint and restrict it to trusted enrollment clients.
How to Mitigate CVE-2026-53658
Immediate Actions Required
- Upgrade Fabric CA to version 1.5.21 or later on all nodes using an LDAP backend.
- Rotate any credentials suspected of being targeted through directed authentication attempts while the vulnerable version was reachable.
- Restrict network access to the Fabric CA enrollment endpoint to known enrollment clients until patching is complete.
Patch Information
The fix is available in Fabric CA 1.5.21. The change escapes LDAP filter metacharacters in Client.GetUser before constructing the search filter in lib/server/ldap/client.go. See the GitHub Security Advisory GHSA-xghw-p77p-3r7x, the GitHub Release v1.5.21, and the merged GitHub Pull Request #501 for full details.
Workarounds
- If immediate patching is not possible, disable the LDAP backend and revert to the internal Fabric CA user store. Deployments without an LDAP backend are unaffected.
- Place the Fabric CA enrollment endpoint behind a reverse proxy or WAF that validates Basic authentication usernames against a strict character allowlist.
- Segment the network so that only vetted enrollment clients can reach the CA service until version 1.5.21 is deployed.
# Verify installed Fabric CA version and upgrade
fabric-ca-server version
# Pull the patched release image
docker pull hyperledger/fabric-ca:1.5.21
# Restart the CA service with the patched binary
systemctl restart fabric-ca-server
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

