{"id":"PYSEC-2026-312","summary":"Ckan remote code execution and private information access via crafted resource ids","details":"Specific vulnerabilities:\n\n* 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`.\n * Remote code execution via unsafe pickle loading, via Beaker's session store when configured to use the file session store backend.\n* Potential DOS due to lack of a length check on the resource id.\n* 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.\n* 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.  \n\n### Impact\n\nA 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. \n\n### Patches\n\nAll the above listed vulnerabilities have been fixed in CKAN 2.9.9 and CKAN 2.10.1\nThe patches for CKAN 2.9 should apply easily to previous CKAN versions.","aliases":["CVE-2023-32321","GHSA-446m-hmmm-hm8m"],"modified":"2026-07-02T13:00:06.553571074Z","published":"2026-06-29T11:50:42.696551Z","references":[{"type":"WEB","url":"https://github.com/ckan/ckan/security/advisories/GHSA-446m-hmmm-hm8m"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2023-32321"},{"type":"PACKAGE","url":"https://github.com/ckan/ckan"},{"type":"WEB","url":"https://github.com/ckan/ckan/blob/2a6080e61d5601fa0e2a0317afd6a8e9b7abf6dd/CHANGELOG.rst"},{"type":"PACKAGE","url":"https://pypi.org/project/ckan"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-446m-hmmm-hm8m"}],"affected":[{"package":{"name":"ckan","ecosystem":"PyPI","purl":"pkg:pypi/ckan"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.9.9"},{"introduced":"2.10.0"},{"fixed":"2.10.1"}]}],"versions":["0.11","0.3","0.4","0.5","0.6","0.7","0.8","1.0","1.1","1.2","1.3","1.3.2","1.3.3","1.4","1.4.1","1.4.2","1.4.3","1.4.3.1","1.5","1.5.1","1.6","1.7","1.7.1","1.8","2.0","2.0.1","2.0.7","2.0.8","2.1","2.1.1","2.1.5","2.1.6","2.10.0","2.2","2.2.1","2.2.3","2.2.4","2.3","2.3.1","2.3.2","2.3.3","2.3.4","2.3.5","2.4.0","2.4.1","2.4.2","2.4.3","2.4.4","2.4.5","2.4.8","2.4.9","2.5.0","2.5.1","2.5.2","2.5.3","2.5.4","2.5.6","2.5.7","2.5.8","2.5.9","2.6.0","2.6.1","2.6.3","2.6.4","2.6.5","2.6.6","2.6.7","2.6.8","2.6.9","2.7.0","2.7.1","2.7.10","2.7.11","2.7.12","2.7.2","2.7.3","2.7.4","2.7.5","2.7.6","2.7.7","2.7.8","2.7.9","2.8.0","2.8.1","2.8.10","2.8.11","2.8.12","2.8.2","2.8.3","2.8.4","2.8.5","2.8.6","2.8.7","2.8.8","2.8.9","2.9.0","2.9.1","2.9.2","2.9.3","2.9.4","2.9.5","2.9.6","2.9.7","2.9.8"],"database_specific":{"source":"https://github.com/pypa/advisory-database/blob/main/vulns/ckan/PYSEC-2026-312.yaml"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}