{"id":"GHSA-446m-hmmm-hm8m","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","PYSEC-2026-312"],"modified":"2026-09-10T03:49:53.851814759Z","published":"2023-05-24T17:24:56Z","database_specific":{"severity":"CRITICAL","github_reviewed":true,"github_reviewed_at":"2023-05-24T17:24:56Z","nvd_published_at":"2023-05-26T23:15:18Z","cwe_ids":["CWE-20"]},"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"}],"affected":[{"package":{"name":"ckan","ecosystem":"PyPI","purl":"pkg:pypi/ckan"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.9.9"}]}],"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.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/github/advisory-database/blob/main/advisories/github-reviewed/2023/05/GHSA-446m-hmmm-hm8m/GHSA-446m-hmmm-hm8m.json"}},{"package":{"name":"ckan","ecosystem":"PyPI","purl":"pkg:pypi/ckan"},"versions":["2.10.0"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2023/05/GHSA-446m-hmmm-hm8m/GHSA-446m-hmmm-hm8m.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}