The Hacker Newsは9月2日(米国時間)、「Warning: PyPI Feature Executes Code Automatically After Python Package Download」において、3分の1近くのPyPI (Python Package Index)パッケージがダウンロードされた時点で自動的にコードを実行すると伝えた。この機能が悪用された場合、開発者がサプライチェーン攻撃にさらされる危険性がある。

Checkmarxのセキュリティ研究者であるYehuda Gelb氏の調査によって、Pythonパッケージのダウンロード後に自動的にコードを実行する機能がPyPIにあることがわかった。既知の悪意のあるパッケージの多くが、より高い感染率を達成するためにこの機能を使用しているとし、警戒が必要と述べられている。

Pythonパッケージのインストール方法の一つとして、「pip install」コマンドが使われる。このコマンドを利用した場合、モジュールと一緒にバンドルされている「setup.py」というファイルが呼び出され、実行される。setup.pyは、依存関係を含むパッケージに関連するメタデータを指定するために使用されるセットアップスクリプトで、脅威アクターがこのファイルに悪意のあるコードを組み込むとされている。

Gelb氏はpip installコマンドではなく、「pip download」コマンドを実行した際にもsetup.pyが実行されることを発見している。「pip download」はPythonパッケージをダウンロードするためだけに使われるが、setup.pyスクリプトも実行され、結果的にその中に含まれる悪意のあるコードが実行されてしまうという。

現在のところ、PyPIパッケージファイルの内容確認し、「.whl」ファイルが存在するかどうかを観察することでこの問題は回避できると説明されている。.whlファイルであればsetup.pyは実行されることがなく、安全とされている。

セキュリティ研究者はパッケージをインストールする代わりにダウンロードすることを選ぶユーザーは、ファイルをダウンロードしてもマシンでコードが実行されないことを期待していると指摘。この問題はバグというよりも設計上の問題であると結論付けている。