Bug 1216480 (CVE-2023-45805) - VUL-0: CVE-2023-45805: python-pdm: Trojan Lockfile
Summary: VUL-0: CVE-2023-45805: python-pdm: Trojan Lockfile
Status: NEW
Alias: CVE-2023-45805
Product: openSUSE Distribution
Classification: openSUSE
Component: Security (show other bugs)
Version: Leap 15.6
Hardware: Other Other
: P3 - Medium : Major (vote)
Target Milestone: ---
Assignee: Security Team bot
QA Contact: Security Team bot
URL: https://smash.suse.de/issue/382659/
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-10-23 07:37 UTC by SMASH SMASH
Modified: 2023-10-23 15:29 UTC (History)
2 users (show)

See Also:
Found By: Security Response Team
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description SMASH SMASH 2023-10-23 07:37:57 UTC
pdm is a Python package and dependency manager supporting the latest PEP 
standards. It's possible to craft a malicious `pdm.lock` file that could allow
e.g. an insider or a malicious open source project to appear to depend on a
trusted PyPI project, but actually install another project. A project `foo` can
be targeted by creating the project `foo-2` and uploading the file
`foo-2-2.tar.gz` to pypi.org. PyPI will see this as project `foo-2` version `2`,
while PDM will see this as project `foo` version `2-2`. The version must only be
`parseable as a version` and the filename must be a prefix of the project name,
but it's not verified to match the version being installed. Version `2-2` is
also not a valid normalized version per PEP 440. Matching the project name
exactly (not just prefix) would fix the issue. When installing dependencies with
PDM, what's actually installed could differ from what's listed in
`pyproject.toml` (including arbitrary code execution on install). It could also
be used for downgrade attacks by only changing the version. This issue has been
addressed in commit `6853e2642df` which is included in release version `2.9.4`.
Users are advised to upgrade. There are no known workarounds for this
vulnerability.

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2023-45805
https://github.com/frostming/unearth/blob/eca170d9370ac5032f2e497ee9b1b63823d3fe0f/src/unearth/evaluator.py#L215-L229
https://github.com/pdm-project/pdm/blob/45d1dfa47d4900c14a31b9bb761e4c46eb5c9442/src/pdm/models/candidates.py#L98-L99
https://github.com/pdm-project/pdm/commit/6853e2642dfa281d4a9958fbc6c95b7e32d84831
https://github.com/pdm-project/pdm/security/advisories/GHSA-j44v-mmf2-xvm9
https://peps.python.org/pep-0440/#post-release-spelling
Comment 1 Robert Frohl 2023-10-23 10:04:07 UTC
relevant for openSUSE:Factory
Comment 2 OBSbugzilla Bot 2023-10-23 11:45:01 UTC
This is an autogenerated message for OBS integration:
This bug (1216480) was mentioned in
https://build.opensuse.org/request/show/1119610 Factory / python-unearth