The operators of the official Python Package Index (PyPI) repository has eliminated 8 libraries that contain malicious code. The developers of PyPI have recently fixed the 3 most severe vulnerabilities, one of which allows a threat actor to take full control of the portal.
All these vulnerabilities were identified by a well-known Japanese cybersecurity analyst, RyotaK. He analyzed the PyPI code that is available on GitHub and identified that if these three vulnerabilities were exploited by the hackers then they would be able to do the following things:-
- Delete documentation files from other people’s projects.
- Remove roles in other people’s projects.
- Run bash commands in the PyPI codebase itself using GitHub Actions.
Vulnerability in Legacy Document Deletion on PyPI
This security flaw is exploitable in the mechanisms for deleting legacy documentation hosting deployment tooling on PyPI. Also it allows a hacker to remove documentation for projects that are not under their control. While RyotaK disclosed this security flaw on 2021-07-25 through the security policy on PyPI[.]org, and as a bounty reward, he received $1000.
While just by adding a trailing slash to the project name used with “remove_by_prefix” in https://github.com/pypa/warehouse/pull/9839 through https://github.com/pypa/warehouse/pull/9839/commits/3afcac795619b0b06007d0fb179d3ca137ed43b7 this security flaw was patched.
Vulnerability in Role Deletion on PyPI
This security flaw was detected in the mechanisms for deleting roles on PyPI. It allows an attacker to remove or delete all the roles for the projects that are not under their control. While apart from this, RyotaK disclosed this security flaw on 2021-07-26 through the security policy on PyPI[.]org, and as a bounty reward, he received $1000.
While just by adding a filter on the current project to the query for the role in https://github.com/pypa/warehouse/pull/9845 through https://github.com/pypa/warehouse/pull/9845/commits/7605bee1e77319000f71f5b60959a35c8e482161 this security flaw was patched.
Vulnerability in GitHub Actions workflow for PyPI
This severe vulnerability could allow a threat actor to gain write permissions upon the pypa/warehouse repository. Apart from this, the security analyst, RyotaK disclosed this security flaw on 2021-07-27 through the security policy on PyPI[.]org, and as a bounty reward, he received $1000.
While just by matching against the PR creator username and not using an unnecessary echo in https://github.com/pypa/warehouse/pull/9846 through https://github.com/pypa/warehouse/pull/9846/commits/fb98c6bb4d68fb43944171214971f6c776f844ce and https://github.com/pypa/warehouse/pull/9846/commits/50bd16422889d653127d373c9615516bf883a394 this security flaw was patched.
The third vulnerability was more critical than the others, since it allows an attacker to run commands in the PyPI infrastructure to collect tokens or other secrets from the codebase.