Skip to content

Ckan remote code execution and private information access via crafted resource ids

Critical severity GitHub Reviewed Published May 24, 2023 in ckan/ckan • Updated Nov 7, 2023

Package

pip ckan (pip)

Affected versions

< 2.9.9
= 2.10.0

Patched versions

2.9.9

Description

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.

References

@amercader amercader published to ckan/ckan May 24, 2023
Published to the GitHub Advisory Database May 24, 2023
Reviewed May 24, 2023
Published by the National Vulnerability Database May 26, 2023
Last updated Nov 7, 2023

Severity

Critical
9.8
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CVE ID

CVE-2023-32321

GHSA ID

GHSA-446m-hmmm-hm8m

Source code

Credits

Checking history
See something to contribute? Suggest improvements for this vulnerability.