CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-11748

CVE-2026-11748: Unauthenticated LDAP Injection in Central Dogma Server Authentication

Alon Barad
Alon Barad
Software Engineer

Sep 12, 2026·6 min read·22 visits

Executive Summary (TL;DR)

Unauthenticated LDAP injection in LY Corporation Central Dogma before version 0.84.0 allows remote attackers to bypass authentication and query directory contents due to unsafe handling of RFC 4515 metacharacters in username fields.

An LDAP injection vulnerability exists in the centraldogma-server-auth-shiro module of LY Corporation Central Dogma before version 0.84.0. The search logic dynamically constructs LDAP search filters by interpolating user-provided usernames without escaping RFC 4515 metacharacters. Unauthenticated remote attackers can leverage this flaw to bypass authentication, enumerate directory hierarchies, and access unauthorized resources.

Vulnerability Overview

An LDAP (Lightweight Directory Access Protocol) Injection vulnerability, tracked as CVE-2026-11748 and GHSA-98q5-5qh2-7w75, has been identified in Central Dogma, an open-source, highly available version-controlled service registry and configuration repository. Specifically, the flaw lies within the centraldogma-server-auth-shiro module, which handles external user authentication and directory lookups using Apache Shiro.

When configured to use Active Directory or LDAP for authentication, Central Dogma allows clients to authenticate through a web user interface or API endpoint. This exposure creates a direct attack surface where unauthenticated network-adjacent or public attackers can submit arbitrary input through authentication forms. The input is then integrated into critical LDAP query pipelines.

The vulnerability is classified under CWE-90 (Improper Neutralization of Special Elements used in an LDAP Query). By exploiting this flaw, attackers can manipulate the structural format of the generated LDAP query. This manipulation causes logical authentication confusion, directory enumeration, and administrative boundary bypasses without requiring valid initial credentials.

Root Cause Analysis

The root cause of the vulnerability lies in the implementation of the SearchFirstActiveDirectoryRealm.findUserDn() method. In standard Java LDAP implementations using JNDI (Java Naming and Directory Interface), there are no built-in parameterized query APIs analogous to JDBC PreparedStatement objects. Consequently, developers must manually format search filters, which introduces risks of injection when user-supplied parameters are handled incorrectly.

In vulnerable versions of Central Dogma, the system constructs LDAP search filters dynamically by calling a regular expression replacement on a predefined template. By default, the template is configured as cn={0}, where {0} acts as a placeholder for the username. The server executes this replacement directly on the unescaped username provided by the user in the login request.

Because the input contains no sanitization, special characters defined in RFC 4515, such as wildcards (*), parentheses ((, )), backslashes (\), and null bytes (\0), preserve their special meanings. When these characters are sent to the LDAP directory controller, they modify the logic of the filter itself rather than being treated as literal string values.

Code Analysis and Patch Walkthrough

In vulnerable releases, the dynamic substitution was executed utilizing USERNAME_PLACEHOLDER.matcher(searchFilter).replaceAll(username). Because this method treats the username string literally during replacement, regex patterns and raw LDAP control characters are directly evaluated.

The patch introduced in version 0.84.0 replaces this logic entirely. Instead of executing unchecked replacements, the code now invokes a custom sanitization routine named encodeLdapFilter(String value). This routine parses the string character-by-character and translates all structural RFC 4515 characters to their equivalent safe ASCII hexadecimal values.

// Vulnerable Implementation (Before Patch)
final String filter =
        searchFilter != null ? USERNAME_PLACEHOLDER.matcher(searchFilter)
                                                   .replaceAll(username)
                             : username;
final NamingEnumeration<SearchResult> result = ctx.search(searchBase, filter, ctrl);
 
// Patched Implementation (After Patch in 0.84.0)
final String escaped = encodeLdapFilter(username);
final String filtered = searchFilter.replace(USERNAME_PLACEHOLDER, escaped);
final NamingEnumeration<SearchResult> result = ctx.search(searchBase, filtered, ctrl);

The encodeLdapFilter helper method iterates through the input and replaces control structures as shown below:

static String encodeLdapFilter(String value) {
    if (value == null) {
        return "";
    }
    final StringBuilder sb = new StringBuilder(value.length());
    for (int i = 0; i < value.length(); i++) {
        final char c = value.charAt(i);
        switch (c) {
            case '\\':
                sb.append("\\5c");
                break; 
            case '*':
                sb.append("\\2a");
                break;
            case '(':
                sb.append("\\28");
                break;
            case ')':
                sb.append("\\29");
                break;
            case '\0':
                sb.append("\\00");
                break;
            default:
                sb.append(c);
        }
    }
    return sb.toString();
} 

This implementation is highly effective and complete. By transforming character operations into hexadecimal escapes before passing the filter to ctx.search(), the LDAP server is forced to treat the characters as literals, neutralizing all injection paths.

Exploitation Methodology

Exploitation of this vulnerability requires network access to the Central Dogma authentication service. Since LDAP directory configurations vary, three distinct exploit vectors can be leveraged to compromise system security depending on the backend implementation.

The first vector is wildcard injection. By submitting a username of *, the resulting LDAP search filter becomes cn=*. Because the query limits results to one entry (ctrl.setCountLimit(1)), the directory server returns the first available record (typically the domain administrator). The Shiro framework then attempts to bind with the administrator's DN using the password provided by the attacker. If the backend LDAP allows unauthenticated binds or null password validation, this allows complete login bypass.

The second vector involves boolean injection. An attacker can construct a payload such as alice)(uid=* which alters the query sequence to cn=alice)(uid=*. This allows the attacker to break out of the configured attribute restriction and check other fields. The final vector is blind directory structure enumeration, where an attacker measures response times or error codes from structural queries to determine the names of valid groups and directory objects.

Impact Assessment

The impact of CVE-2026-11748 is classified as Medium, with a CVSS v4.0 base score of 6.9. Because Central Dogma often stores sensitive application configurations and deployment secrets, gaining access to the platform can lead to secondary compromises of connected systems.

If the LDAP server is configured to allow blank password binds, the attacker can log in as arbitrary administrative users. Even in configurations where passwords are validated, attackers can leverage timing side-channels and structural injection responses to enumerate valid corporate users, organizational units (OUs), and internal active directory structures.

Additionally, audit log evasion is a factor. Because the application logs the unescaped string submitted in the HTTP request, but the directory controller executes a completely different logical query due to parenthetical parsing, security tools monitoring active directory commands will show inconsistent execution contexts, complicating forensic investigations.

Remediation & Mitigation Guidance

The primary resolution is to upgrade LY Corporation Central Dogma to version 0.84.0 or later. This release enforces full RFC 4515 escaping on all elements of LDAP search filters.

If an immediate upgrade is impossible, administrators can apply temporary mitigations at the network or directory level. Deploying custom Web Application Firewall (WAF) rules is highly recommended. Rules should detect and block common LDAP control characters in the username field of login endpoints, specifically targeting regex patterns matching .*[(\|&)=\*].*.

Furthermore, administrators should audit directory server settings to disable unauthenticated binds and restrict the service account used by Central Dogma to read-only access on specific, non-administrative organizational units. This limits the blast radius of any successful enumeration attempts.

Official Patches

LY CorporationOfficial GitHub Security Advisory
LY CorporationFix Commit in GitHub Repository

Fix Analysis (1)

Technical Appendix

CVSS Score
6.9/ 10
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:L/SI:N/SA:N
EPSS Probability
0.62%
Top 52% most exploited

Affected Systems

LY Corporation Central Dogma centraldogma-server-auth-shiro module

Affected Versions Detail

Product
Affected Versions
Fixed Version
Central Dogma
LY Corporation
< 0.84.00.84.0
AttributeDetail
CWE IDCWE-90
Attack VectorNetwork
CVSS v4.06.9 (Medium)
EPSS Score0.00618 (Percentile: 47.64%)
ImpactAuthentication Bypass / Directory Enumeration
Exploit Statuspoc
KEV StatusNot Listed

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1595Active Scanning
Reconnaissance
CWE-90
Improper Neutralization of Special Elements used in an LDAP Query ('LDAP Injection')

The software constructs an LDAP query using externally-influenced input, but does not neutralize or incorrectly neutralizes special characters that can modify the query context.

Known Exploits & Detection

GitHubAdvisory text containing detailed explanation of regression test suites and escaping scenarios used to prove the injection vulnerability

Vulnerability Timeline

Vulnerability reported and patch development initiated
2026-05-15
Patch merged and Central Dogma 0.84.0 released
2026-06-19
GitHub Advisory published and CVE record made public
2026-06-22

References & Sources

  • [1]GHSA-98q5-5qh2-7w75: LDAP Injection in centraldogma-server-auth-shiro
  • [2]Central Dogma Security Patch Commit
  • [3]CVE.org CVE-2026-11748 Detail
  • [4]NVD - CVE-2026-11748 Detail

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•2 days ago•CVE-2026-115895
8.8

CVE-2026-115895: Code Injection via Unsanitized Import Alias in Happy DOM ECMAScript Module Compiler

CVE-2026-115895 is a high-severity code injection vulnerability (CWE-94) in the happy-dom npm package prior to version 21.0.4. The vulnerability exists within the ECMAScriptModuleCompiler component, which transforms ECMAScript module syntax into executable Node.js functions when JavaScript evaluation is enabled. Due to an incomplete fix for CVE-2026-33943, the compiler failed to validate local named import aliases against legal JavaScript identifier rules. Attackers supplying crafted module imports—specifically utilizing destructuring default initializers alongside JSON module attributes—can inject arbitrary JavaScript expressions directly into the host Node.js runtime context.

Amit Schendel
Amit Schendel
8 views•10 min read
•2 days ago•CVE-2026-115883
6.0

CVE-2026-115883: Cross-Namespace Access via Dot-Delimited Labels in LangGraph Postgres and SQLite Stores

An improper input validation and authorization bypass vulnerability exists in the LangGraph storage layer affecting langgraph, langgraph-checkpoint-postgres, and langgraph-checkpoint-sqlite. Because relational store implementations serialize namespace tuples into dot-delimited strings without validating labels on read, search, delete, and batch operations, an attacker who controls a namespace label can inject periods (.) to traverse namespace boundaries and access, modify, or delete data belonging to other namespaces.

Amit Schendel
Amit Schendel
8 views•9 min read
•2 days ago•CVE-2026-115886
6.5

CVE-2026-115886: Unauthenticated Server-Side Request Forgery and Unsafe Reflection in MLflow Scorer Evaluation Endpoints

CVE-2026-115886 (GHSA-2wqp-q3c6-ccj5) is a Server-Side Request Forgery (SSRF) and Unsafe Reflection vulnerability in MLflow versions 3.12.0rc0 prior to 3.17.0. Unauthenticated REST API endpoints accept serialized third-party scorer JSON payloads that are dynamically deserialized and reflectively instantiated without sanitizing constructor keyword arguments. When optional dependencies such as trulens and trulens-providers-litellm are installed, attackers can inject egress-steering arguments into the scorer payload, forcing the MLflow server to dispatch outbound HTTP requests to arbitrary internal destinations or cloud metadata services.

Alon Barad
Alon Barad
12 views•10 min read
•2 days ago•CVE-2026-113872
7.5

CVE-2026-113872: Unauthenticated Process Crash in Express Multer via Late Busboy Stream Resumption

CVE-2026-113872 (GHSA-q7qp-rjg7-q26m) is a high-severity denial-of-service vulnerability affecting the multer multipart/form-data upload middleware for Node.js and Express in versions 2.0.0 through 2.4.0. When an endpoint is configured to accept multiple files using an asynchronous fileFilter callback, a crafted, truncated multipart HTTP request can trigger an unhandled error event on the underlying busboy stream parser after request teardown has already completed. Because all error listeners are stripped during teardown, Node.js treats the resulting error event as an uncaught exception and immediately terminates the server process.

Amit Schendel
Amit Schendel
10 views•12 min read
•2 days ago•CVE-2026-115897
2.1

CVE-2026-115897: Cross-Site Scripting via Function Body Boundary Bypass in serialize-javascript

CVE-2026-115897 (also tracked as GHSA-m5mm-p8h7-m29v and aliased as CVE-2026-115754) is a Cross-Site Scripting (XSS) vulnerability in the Yahoo serialize-javascript npm package prior to version 7.1.3. The flaw exists in the regular expression used by escapeFunctionBody() to neutralize HTML script closing tags within serialized JavaScript functions. Because function bodies are sanitized in isolation before structural formatting is applied, a function whose string representation terminates directly with the sequence '</script' bypasses the positive lookahead check. When combined with serialization formatting options that introduce whitespace delimiters and a subsequent property that supplies a closing bracket, an attacker can prematurely terminate an enclosing HTML <script> block and inject arbitrary HTML or JavaScript into the rendered document.

Amit Schendel
Amit Schendel
7 views•13 min read
•2 days ago•CVE-2026-109841
5.9

CVE-2026-109841: Subresource Integrity Verification Bypass in Node.js Undici

CVE-2026-109841 is a Subresource Integrity (SRI) verification bypass vulnerability in undici, the official HTTP/1.1 and HTTP/2 client library for Node.js that powers the global fetch() implementation. The flaw stems from improper handling of case sensitivity (CWE-178) when validating cryptographic hash algorithm tokens within SRI metadata. Because undici compared incoming algorithm identifiers against a strictly lowercase set without prior ASCII-lowercase normalization, valid uppercase or mixed-case tokens such as SHA256- or Sha384- were treated as unrecognized algorithms and discarded. Under SRI forward-compatibility rules, discarding all provided tokens results in an empty integrity list, causing undici to fail open and accept tampered HTTP response bodies without cryptographic verification.

Alon Barad
Alon Barad
17 views•9 min read