Critical CVE-2024-45321 Flaw in Popular Perl Module Installer cpanminus, No Patch Available
2024/08/28 SecurityOnline — Perl コミュニティに対して発せられたセキュリティ アドバイザリは、広く使用されている App::cpanminus (cpanm) ツールに存在する、深刻な脆弱性 CVE-2024-45321 (CVSS:9.8) に関するものである。セキュリティ・アドバイザリである。この脆弱性は、CPAN から Perl モジュールをダウンロード/インストールする際 HTTP 接続で、安全が確保されないデフォルト・コンフィグが用いられるというものであり、cpanminus のユーザーに重大なリスクをもたらす。

脆弱性 CVE-2024-45321 によりユーザーは、整合性チェックが欠落したコードのダウンロード (CWE-494) の危険にさられる。
つまり、デフォルト状態の cpanminus は、ダウンロードしたコードの整合性を検証しないことになる。もし HTTPS の保護がなければ、送信中にコードをネットワーク攻撃者が傍受/変更し、ユーザーのシステム上で悪意のコードを実行する可能性が高くなる。
公式 CPAN クライアントの代替としての cpanminus は、軽量で高速な代替として人気を博しているため、この脆弱性の影響が広範囲に及ぶ可能性が生じている。安全ではないデフォルト・コンフィグの cpanminus を使用して、Perl モジュールを管理している環境では、多数のシステムが侵害されるという可能性が生じている。
現時点において、公式パッチはリリースされていないが、ユーザーに対して強く推奨されるのは、以下の3つのオプションを用いて、リスクを軽減することである:
Option_1:HTTPS ミラーの設定:コマンドラインでの “–from ” 引数の使用および、PERL_CPANM_OPT 環境変数の設定により、安全な HTTPS ミラーを使用するように cpanminus をコンフィグする:” export PERL_CPANM_OPT=”–from https://www.cpan.org”。ただし、このオプションでは、BackPan からの古いリリースや開発 (TRIAL) リリースに対して、ダウンロードのサポートが無効化される点に注意してほしい。それは、一部のユーザーにとって、考慮すべき事項となり得る。
Option_2:cpanm 実行ファイルにパッチを適用する:BackPan および TRIAL リリースへのアクセスの維持が必要な場合には、cpanm 実行型ファイルにパッチを適用して、すべての HTTP エンドポイントを HTTPS に置き換えるようにする。この処理は Perl の1行 “$ perl -pi -E ‘s{http://(www.cpan.org|backpan.perl.org|cpan.metacpan.org|fastapi.metacpan.org|cpanmetadb.plackperl.org)}{https://$1}g’ /path/to/cpanm” で実現できるこのアプローチにより、すべてのモジュールのダウンロードが、HTTPS 経由で安全に送信されるようになり、また、以前と同じように cpanminus を使い続けられる。
Option_3:代替クライアントを使用する CPAN.pm (cpan) 2.35 以降およびApp::cpm (cpm) などの、代替 Perl モジュール・インストーラーに切り替える。これらは、デフォルトで安全な HTTPS 接続を優先している。
Perl の公式 CPAN クライアントの代替としての cpanminus に脆弱性とのことですが、さまざまなツールなどが周辺に提供されているのですね。GitHub の cpanminus ページには、”get, unpack, build and install modules from CPAN” と記されています。よろしければ、Perl で検索も、ご利用ください。
You must be logged in to post a comment.