CVE-2023-32321: Ckan remote code execution and private information access via crafted resource ids

CVE-2023-32321 · Severity: critical · CVSS 9.8 · Published 2023-05-24

Specific vulnerabilities:

* Arbitrary file write in `resource_create` and `package_update` actions, using the `ResourceUploader` object. Also reachable via `package_create`, `package_revise`, and `package_patch` via calls to `package_update`. * Remote code execution via unsafe pickle loading, via Beaker's session store when configured to use the file session store backend. * Potential DOS due to lack of a length check on the resource id. * Information disclosure: A user with permission to create a resource can access any other resource on the system if they know the id, even if they don't have access to it. * Resource overwrite: A user with permission to create a resource can overwrite any resource if they know the id, even if they don't have access to it.

### Impact

A user with permissions to create or edit a dataset can upload a resource with a specially crafted id to write the uploaded file in an arbitrary location. This can be leveraged to Remote Code Execution via Beaker's insecure pickle loading.

### Patches

All the above listed vulnerabilities have been fixed in CKAN 2.9.9 and CKAN 2.10.1 The patches for CKAN 2.9 should apply easily to previous CKAN versions.

Technologies: ckan (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2023-32321 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2023-32321 being exploited in the wild.
How severe is CVE-2023-32321?
Critical severity, with a CVSS score of 9.8, published 24 May 2023.
Which products and versions are affected?
ckan (PyPI) < 2.9.9, ECOSYSTEM:introduced=0,fixed=2.9.9, ECOSYSTEM:introduced=0,fixed=2.9.9,introduced=2.10.0,fixed=2.10.1.
Is there a fix for CVE-2023-32321?
Yes. ckan (PyPI): upgrade to 2.10.1, 2.9.9 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
Am I affected by CVE-2023-32321?
Check whether you run ckan (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • ckan (PyPI): upgrade to 2.10.1, 2.9.9 or later
    pip install "ckan>=2.10.1"

Affected products

  • ckan (PyPI) < 2.9.9, ECOSYSTEM:introduced=0,fixed=2.9.9, ECOSYSTEM:introduced=0,fixed=2.9.9,introduced=2.10.0,fixed=2.10.1

Identifiers

  • CVE-2023-32321
  • GHSA-446m-hmmm-hm8m
  • PYSEC-2026-312

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.