ZeroHour

CVE-2026-55416

moderate

Authenticated SQL Injection in Pimcore Custom Reports Bundle

CVSS 3.1
8.8 high
EPSS
Published
()
Modified
AI analysis

Pimcore's Custom Reports bundle contains an authenticated SQL injection flaw (CWE-89, CVSS 8.8 high) in which the report configuration fields (sql, from, where, groupby) are concatenated directly into database queries and guarded only by a regex blacklist that omits INSERT, UNION, subqueries, stacked queries, LOAD_FILE(), INTO OUTFILE, and MySQL comment injection. An attacker holding the reports_config permission and a valid admin session triggers it by submitting crafted SQL via POST to /admin/bundle/customreports/custom-report/update; an unparameterized LIMIT clause (offset/limit) provides a secondary injection point. Because the injected SQL runs with the application's database privileges, the attacker can read, modify, or delete data across the entire database, resulting in complete data compromise. Any Pimcore deployment running 11.5.x, 12.3.x, or 2026.1.x prior to the patched releases and using the Custom Reports bundle is affected. No public proof-of-concept or in-the-wild exploitation is known, and the flaw is not in CISA KEV.

What to do: Upgrade to Pimcore 11.5.19, 12.3.10, or 2026.1.6 depending on your release line. As interim mitigation, restrict the reports_config permission to a small set of highly trusted administrators and, if a WAF is available, block requests to /admin/bundle/customreports/custom-report/update whose configuration parameter contains SQL keywords. Also review stored custom report configurations and admin accounts with reports_config access for signs of tampering.

Affected
Pimcore (Custom Reports bundle, Sql.php adapter)11.5.x prior to 11.5.19
Pimcore (Custom Reports bundle, Sql.php adapter)12.3.x prior to 12.3.10
Pimcore (Custom Reports bundle, Sql.php adapter)2026.1.x prior to 2026.1.6
Estimated exposure
moderatelikely thousands to low tens of thousands of exposed Pimcore deployments (a subset of roughly 10,000-100,000 Pimcore installations worldwide, limited to those… — Pimcore is a widely adopted open-source PIM/CMS distributed via Composer, but the advisory includes no install telemetry, so this is a rough order-of-magnitude estimate from general ecosystem adoption, narrowed by the requirement that the…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Pimcore is an Open Source Data & Experience Management Platform. Prior to 11.5.19, 12.3.10, and 2026.1.6, an authenticated user with reports_config permission can place attacker-controlled SQL fragments in the sql, from, where, and groupby fields of a Custom Reports configuration processed by bundles/CustomReportsBundle/src/Tool/Adapter/Sql.php. The buildQueryString() method concatenates these values into a database query, while a blacklist omits dangerous constructs such as additional data-manipulation statements, comments, subqueries, and multiple statements. The getData() method also previously interpolated offset and limit values into a LIMIT clause without integer casting. Executing the configured report reaches fetchAllAssociative() with the constructed query and can disclose, modify, or delete arbitrary database data. This issue is fixed in versions 11.5.19, 12.3.10, and 2026.1.6.

Ecosystems
composer
Weakness
CWE-89
Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
GHSA
GHSA-23rh-xw42-fq82 (high)

In the news

No ingested article mentions this CVE yet.