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/