重大なPython PLYライブラリの脆弱性によりリモートコード実行が可能に

Python PLY(Python Lex‑Yacc)ライブラリに重大なセキュリティ問題が公開され、PyPIで配布されているバージョン3.11に存在する未文書化機能を通じてリモートコード実行(RCE)を許す可能性があります。

この欠陥はCVE‑2025‑56005として追跡されており、セキュリティ研究者Ahmed Abdによって報告され、開示日は2025年7月1日とされています。

注目すべき点として、このパラメータは公式のPLYドキュメントやGitHubリポジトリには記載されていないにもかかわらず、PyPIで公開されているPLY 3.11のリリースでは有効になっています。開示時点では、メンテナはこの挙動を公に認めていませんでした。

攻撃者がyacc(picklefile=...)で使用されるpickleファイルを配置または改ざんできる場合、次のことが可能になります:

パーサーテーブルファイルが次のような環境ではリスクが高まります:

このような構成では、ビルド基盤、共有ファイルシステム、またはデプロイパイプが侵害された攻撃者が、パーサーの初期化時に毎回ひそかにコードを実行する悪意のある.pklファイルを混入させる可能性があります。

公開されている概念実証では、最小限のレキサーとパーサーを定義したうえで、悪意のあるpickleペイロードを作成します。

yacc(picklefile='exploit.pkl', ...)が呼び出されると、入力が解析される前であっても、パーサーテーブルが読み込まれた時点で直ちにコマンドが実行されます。

修正済みリリースが利用可能になるまで、PLYの利用者は次の対応を行うべきです:

翻訳元: https://cyberpress.org/vulnerability-in-python-ply/

ソース: cyberpress.org