Lucene search
+L

LDAP Injection In OpenAM Detection

🗓️ 28 Jul 2026 11:27:38Reported by KittySploitType 
kittysploit
 kittysploit
🔗 kittysploit.com👁 1 Views

LDAP injection in OpenAM during password reset allows full password retrieval.

Related
Refs
Code
ReporterTitlePublishedViews
Family
zdt
zdt
OpenAM 13.0 - LDAP Injection Exploit
3 Nov 202100:00
–zdt
githubexploit
GithubExploit
Exploit for Injection in Forgerock Openam
7 Oct 202210:18
–githubexploit
githubexploit
GithubExploit
Exploit for Injection in Forgerock Openam
3 Nov 202113:21
–githubexploit
attackerkb
attackerkb
CVE-2021-29156
25 Mar 202109:15
–attackerkb
circl
Circl
CVE-2021-29156
19 Aug 202122:01
–circl
cnnvd
CNNVD
Forgerock ForgeRock OpenAM 注入漏洞
25 Mar 202100:00
–cnnvd
cnvd
CNVD
Unspecified Vulnerability in ForgeRock OpenAM
2 Apr 202100:00
–cnvd
cve
CVE
CVE-2021-29156
25 Mar 202108:20
–cve
cvelist
Cvelist
CVE-2021-29156
25 Mar 202108:20
–cvelist
exploitdb
Exploit DB
OpenAM 13.0 - LDAP Injection
3 Nov 202100:00
–exploitdb
Rows per page
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""OpenAM contains an LDAP injection vulnerability."""

from kittysploit import *
from lib.protocols.http.http_client import Http_client


class Module(Scanner, Http_client):
    __info__ = {
        'name': 'LDAP Injection In OpenAM Detection',
        'description': "OpenAM contains an LDAP injection vulnerability. When a user tries to reset his password, they are asked to enter username, and then the backend validates whether the user exists or not through an LDAP query. If the user exists, the password reset token is sent to the user's email. Enumeration can allow for full password retrieval.",
        'author': ['KittySploit Team'],
        'severity': 'high',
        'tags': ['web', 'scanner', 'cve', 'cve2021', 'openam', 'ldap', 'injection', 'forgerock', 'vuln'],
        'agent': {
            'risk': 'active',
            'effects': ['network_probe'],
            'expected_requests': 3,
            'reversible': True,
            'approval_required': False,
            'produces': ['tech_hints', 'risk_signals', 'endpoints'],
            'cost': 1.0,
            'noise': 0.3,
            'value': 1.0,
            'requires': {
                'min_endpoints': 0,
                'min_params': 0,
                'tech_hints_any': [],
                'tech_hints_all': [],
                'specializations_any': [],
                'risk_signals_any': [],
                'auth_session': False,
                'capabilities_any': [],
                'capabilities_all': [],
                'confidence_min': {},
                'confidence_min_any': {},
                'endpoint_pattern_any': [],
                'param_any': [],
                'api_surface_ready': False,
            },
            'chain': {
                'produces_capabilities': [
                    {
                        'capability': 'admin_surface',
                        'from_detail': '',
                    },
                ],
                'consumes_capabilities': [],
                'option_bindings': {},
                'suggested_followups': ['auxiliary/scanner/http/login_page_detector'],
            },
        },
        'references': [
            'https://github.com/sullo/advisory-archives/blob/master/Forgerock_OpenAM_LDAP_injection.md https://hackerone.com/reports/1278050 https://www.guidepointsecurity.com/blog/ldap-injection-in-forgerock-openam-exploiting-cve-2021-29156/ https://portswigger.net/research/hidden-oauth-attack-vectors',
            'https://portswigger.net/research/hidden-oauth-attack-vectors',
            'https://bugster.forgerock.org/jira/browse/OPENAM-10135',
            'https://github.com/ARPSyndicate/cvemon',
            'https://github.com/ARPSyndicate/kenzer-templates',
        ],
        'cve': 'CVE-2021-29156',
    }

    def run(self):
        for path in ('/openam/ui/PWResetUserValidation', '/OpenAM-11.0.0/ui/PWResetUserValidation', '/ui/PWResetUserValidation'):
            r = self.http_request(method="GET", path=path, allow_redirects=False)
            if not r or r.status_code != 200:
                continue
            body = r.text or ""
            body_any = ('jato.pageSession',)
            if (any(m in body for m in body_any)):
                self.set_info(
                    severity='high',
                    reason="LDAP Injection In OpenAM detected",
                    path=path,
                )
                return True
        return False

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

28 Jul 2026 11:27Current
7.2High risk
Vulners AI Score7.2
CVSS 25
CVSS 3.17.5
EPSS0.76846
1