15年前のパッチ未適用のPythonバグにより35万プロジェクトでコード実行が可能に

Python の tarfile モジュール(Python を使用するプロジェクトのデフォルト モジュール)にある 15 年前からパッチが適用されていない脆弱性により、350,000 を超える固有のオープンソース リポジトリが潜在的なサプライ チェーン サイバー攻撃の危険にさらされていると考えられています。

現在、Python tarfile モジュールは、AWS、Facebook、Google、Intel、Netflix によって作成されたフレームワークに広く使用されているだけでなく、ソフトウェア開発、人工知能/機械学習、コード開発などのいくつかの業界だけでなく、その他の分野でも使用されています。 Web開発、セキュリティ、IT管理、メディアなど多岐にわたります。

脆弱性は次のように追跡されますCVE-2017-4559(CVSS スコア: 6.8)、15 年前に発見されました。この欠陥は、2 行または 3 行の単純なコードで生成された悪意のあるファイルをアップロードすることで悪用され、攻撃者が任意のコードを実行したり、ターゲット デバイスを制御したりできるようになります。

今年初め、CVE-2017-4559 は、別のセキュリティ問題を調査中に Trellix 脆弱性研究者 Kasimir Schulz によって再び発見されました。

「Trellix Advanced Research Center は、無関係な脆弱性を調査中に、Python の tarfile モジュールの脆弱性を発見しました。当初、私たちは新たなゼロデイ脆弱性を発見したと考えていました。この問題を詳しく調べていくと、これが実際には CVE-2017-4559 であることがわかりました。」役職セキュリティ企業 Trellix が公開した。

「この脆弱性は、tarfile モジュールの extract および extractall 関数におけるパス トラバーサル攻撃であり、攻撃者が TAR アーカイブ内のファイル名に「..」シーケンスを追加することで任意のファイルを上書きできるようになります。

この脆弱性は当初 6.8 としてのみマークされていましたが、ほとんどの場合、攻撃者はファイルの書き込みからコードを実行できる可能性があります。以下のビデオでは、Trellix がどのようにしてコードを実行できるかを示しています。ユニバーサルラジオハッカー:

攻撃者は、抽出対象のディレクトリから逃れてコードを実行できるような方法で悪意のある tarfile をアップロードすることでこの欠陥を悪用し、攻撃者がターゲット デバイスの制御を奪う可能性があります。

「攻撃者がこの脆弱性を利用するには、ファイル名に「..」とオペレーティング システムの区切り文字 (「/」または「\」) を追加して、ファイルが抽出されるはずのディレクトリをエスケープする必要があります。 。 Python の tarfile モジュールを使用すると、まさにこれを行うことができます。」と投稿は続きます。

「tarfile モジュールを使用すると、ファイルが tar アーカイブに追加される前に、ファイルのメタデータを解析および変更するために使用できるフィルターを追加できます。これにより、攻撃者は上記のわずか 6 行のコードでエクスプロイトを作成できるようになります。」

「事前の検査なしに信頼できないソースからアーカイブを抽出しないでください」、tarfile の Python ドキュメント読む。 「パスの外でファイルが作成される可能性があります。たとえば、'/' で始まる絶対ファイル名や 2 つのドット '..' を含むファイル名を持つメンバーなどです。」

さらに、Trellix は、CVE-2017-4559 に対して脆弱なプロジェクトをスキャンする Creosote と呼ばれる無料ツールをリリースし、これを使用して Spyder Python IDE や Polemarch などのアプリケーションに潜む脆弱性を発見しました。

Trellix のプリンシパル エンジニア兼脆弱性研究ディレクターの Doug McKee 氏は、「この脆弱性は放置されたまま、世界中の何十万ものオープンソースおよびクローズドソースのプロジェクトに意図せず追加され、ソフトウェア サプライ チェーンの大きな攻撃対象領域を生み出しています」と述べています。注目した