LDAP injection via user-controlled input
ID |
vbnet.inject.ldap_injection |
Severity |
high |
Remediation Complexity |
medium |
Remediation Risk |
medium |
Remediation Effort |
medium |
Resource |
Inject |
Language |
VB.NET |
Description
User-controlled input flows into an LDAP filter without neutralization, which may allow LDAP injection. Encode untrusted values with an LDAP filter encoder (e.g. LdapFilterEncode) before building the search filter.
Rationale
User-controlled input flows into an LDAP filter without neutralization, which may allow LDAP injection. Encode untrusted values with an LDAP filter encoder (e.g. LdapFilterEncode) before building the search filter.
The following code illustrates a vulnerable pattern detected by this rule:
Public Sub QueryStringToSearcherCtor(ByVal Request As HttpRequest)
Dim user As String = Request.QueryString("user")
Dim entry As New DirectoryEntry()
' VULNERABLE: LDAP injection via user-controlled input
Dim searcher As New DirectorySearcher(entry, "(uid=" & user & ")")
searcher.FindOne()
End Sub
Remediation
Follow secure coding practices and review the references below for detailed remediation guidance.
References
-
OWASP: A03:2021 - Injection
-
https://cheatsheetseries.owasp.org/cheatsheets/LDAP_Injection_Prevention_Cheat_Sheet.html