CVE#xz

CVE

  • https://nvd.nist.gov/vuln/detail/CVE-2024-3094

    Malicious code was discovered in the upstream tarballs of xz, starting with version 5.6.0. Through a series of complex obfuscations, the liblzma build process extracts a prebuilt object file from a disguised test file existing in the source code, which is then used to modify specific functions in the liblzma code. This results in a modified liblzma library that can be used by any software linked against this library, intercepting and modifying the data interaction with this library.

    バージョン 5.6.0 以降の xz の上流の tarball で悪意のあるコードが発見されました。 liblzma ビルド プロセスは、一連の複雑な難読化を通じて、ソース コード内に存在する偽装テスト ファイルからビルド済みオブジェクト ファイルを抽出します。このファイルは、liblzma コード内の特定の関数を変更するために使用されます。これにより、変更された liblzma ライブラリが作成され、このライブラリにリンクされた任意のソフトウェアで使用できるようになり、このライブラリとのデータ対話が傍受および変更されます。 (Google翻訳)

sshd 自体は liblzma を使っていないが、fedora や debian が systemd 通知対応の為に、openssh に systemd 対応のパッチを当ててる。libsystemd 経由で liblzma の影響を受ける。そこで liblzma が ssh の暗号デコード関数を横取りする。特定のRSA鍵で sshd の認証を素通りするバックドア。ただし、関数横取り(シンボル検索?)が重たいのに気づいた人がいてすぐに発見された。最新バージョンを追う Fedora とかパッケージや、Debian 開発者用パッケージへの影響で済んだ模様。

コミット

犯人: "Jin Tan" <jiat0218@gmail.com> 共犯: "Jigar Kumar" (メールアドレス不明?)

コミットアシスト

Jin Tan をコミッターにするよう作者に圧力をかける Jigar Kumar

発見の経緯

https://pbs.twimg.com/media/GJ5BW-xbEAAnlQH?format=png&name=small#.png

  • https://twitter.com/r_shioya/status/1774015780868571353

    攻撃で目的となる関数をフックするために(多分),シンボルテーブルの解析をやってて,これが重かったみたいです

    If the above decides to continue, the code appears to be parsing the symbol tables in memory. This is the quite slow step that made me look into the issue.

まとめ

  • https://twitter.com/Blankwonder/status/1773921956615877110 (DeepL.com(無料版)で翻訳)

    xz-utilsパッケージに関するこの2つのサプライチェーン攻撃ノートを読み終えたところだが、攻撃者は3年間も潜んでいたようである。 要約すると

    1.攻撃者であるJiaT75(Jia Tan)は2021年にGitHubアカウントにサインアップし、それ以来xzプロジェクトのメンテナンスに積極的に関与し、徐々に信頼とコードを直接コミットする権利を得ている。
    2.JiaT75はここ数ヶ月の間に、あるコミットにbad-3-corrupt_lzma2.xzとgood-large_compressed.lzmaをひっそりと追加した。これは一見無害なテストバイナリのように見えたが、コンパイルスクリプトでは特定の条件下でこの2つのファイルから読み込むことでコンパイル結果が変更されていた。 しかし、ある条件下では、コンパイルスクリプトがこれら2つのファイルから読み込んでコンパイル結果を修正するため、コンパイル結果と公開されているソースコードとの間に不整合が生じる。
    3.予備調査によると、注入されたコードは glibc の IFUNC を使用して OpenSSH の RSA_public_decrypt 関数をフックしており、攻撃者は特定の検証データを構築することで RSA 署名検証をバイパスすることができます。 (詳細はまだ解析中です)
    4.liblzmaとOpenSSHの両方を使用するプログラムが影響を受けます。 最も直接的な標的はsshdで、攻撃者は特定のリクエストを作成することで、リモートアクセスのための鍵認証をバイパスすることができます。
    5.影響を受けるxz-utilsパッケージはDebian testingにマージされており、攻撃者はfedoraとubuntuにもマージを試みている。
    6.幸運なことに、注入されたコードには、特定の状況下でsshdのCPU使用率を急上昇させる何らかのバグがあるようだ。 このバグに気づいたセキュリティ研究者が陰謀を発見し、oss-securityに報告したため、事件は収束した。もしこのバグがなかったら、このバックドアがメインストリームのディストリビューションの安定版に組み込まれていた可能性はかなり高く、前代未聞の大規模なセキュリティ事件になっていただろう。

    さらに、攻撃者が非常に慎重であったことを示す詳細もある:

    1.攻撃者は、テスト期間中に発見されるまでの時間が短くなることを期待して、ubuntuベータ版フリーズの数日前に新バージョンを組み込もうとした。
    2.xz-utilsプロジェクトのオリジナルメンテナであるLasse Collin (Larhzu)は、定期的にインターネットを中断する癖があり、最近もそうしていたため、彼がレビューする機会がなく、現在も彼と連絡を取ることができないまま変更が行われている。 これが攻撃者がxz-utilsプロジェクトを選んだ理由の一つかもしれない。

    GitHubは現在、xzプロジェクト全体を閉鎖している。

パッケージ

Amazon

Debian

homebrew

記事

  • 広く使用されている「xz」にssh接続を突破するバックドアが仕込まれていた事が判明。重大度はクリティカルでLinuxのほかmacOSにも影響

libarchive

こっちでも似た事をしてる疑惑。

.

  • https://twitter.com/thegrugq/status/1773827035976405003

    On the .xz backdoor.

    It is hard to see how the developer Jia Tan is innocent. The backdoor was added in 5.6.0 by his account. He contacted Fedora to push them to move to 5.6.0. There was a problem with valgrind, they worked with hi to resolve it. He commits the fix in 5.6.1.

  • https://twitter.com/mitarashiponta/status/1773977591973871709

    みたらしJP1 @mitarashiponta xz-utilsの件、AWSからコメント出てた 要約すると・・・

    ・Amazon LinuxやBottlerocketユーザーは影響を受けず、対応は不要
    ・AWSインフラやサービスは影響を受けない
    ・他のOSを使用しているユーザーは、OSベンダーが提供する情報を参照して対処する必要あり

関連


Reload   Diff   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes