Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2020-25265-25266 — CVE-2020-25265およびCVE-2020-25266を実証する概念実証エクスプロイト。細工されたMP3ファイルを使用して、libappimageとappimagedを介して任意のコード実行を達成し、システムアプリケーションを上書きします。 | Kitploit
ツール/GitHubGitHub/refi64/cve-2020-25265-25266
特権昇格脆弱性分析エクスプロイト横移動ペイロード開発バイナリエクスプロイト
GitHubrefi64/cve-2020-25265-25266

CVE-2020-25265-25266

CVE-2020-25265およびCVE-2020-25266を実証する概念実証エクスプロイト。細工されたMP3ファイルを使用して、libappimageとappimagedを介して任意のコード実行を達成し、システムアプリケーションを上書きします。

リポジトリを見る
2125年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2020-25265 / CVE-2020-25266

  • CVE-2020-25265
  • CVE-2020-25266

これは、libappimage と appimaged に対する PoC エクスプロイトです。

2 つの CVE を組み合わせることで、一見 AppImage に見えないファイルを作成できます。 このファイルは appimaged によって暗黙的に検出・インストールされ、同一アプリケーションのシステムインストール版を上書きします。

今回のケースでは、ペイロードとして MP3 ファイルが使用され、上書き対象のアプリケーションは Nautilus です。

影響を受けるバージョン

この脆弱性は、全バージョンの appimaged と、1.0.3 より古いすべての libappimage バージョンに影響します。

何が起こるか

  • MP3 コーデックにはファイルヘッダが存在しないため、メディアソフトウェアはファイル全体をスキャンしてフレームヘッダを探す必要があります。 そのため、ELF ヘッダと AppImage タイプ 2 ヘッダをファイルの先頭に配置しても、MP3 は再生可能なままです。この特性により、MP3 は本 PoC に最適なターゲットとなります。

  • MP3 ファイルは、再生メディアの後にペイロードバイナリが含まれるように変更されます。Dart スクリプトを使用して、MP3 データをペイロード実行可能ファイルと ELF ヘッダの間に配置します(シンボルテーブル内のシンボルの位置は調整していません。これは追加の労力が必要であり、本 PoC では不要だったためです)。ペイロードバイナリは 1MB 未満であるため、ファイルサイズの顕著な増加は引き起こしません。ファイルの末尾には squashfs ファイルシステムが追加され、偽の Nautilus デスクトップファイルとアイコンが含まれています。

    なお、MP3 を squashfs の末尾に追加することも技術的には可能ですが、ファイル内で非常に遅い位置に現れるため、メディアプレイヤーを混乱させる可能性が高くなります。一方、ELF ヘッダの直後はファイルの先頭から数十バイトの位置にすぎません。

  • appimaged は、監視対象ディレクトリ内のすべてのファイルを、ファイル拡張子に関係なくスキャンします。MP3 を検出すると、ELF ヘッダと AppImage ヘッダを認識し、内部のデスクトップファイルを抽出します。

  • 不正なデスクトップファイルが書き込まれ、悪意のある MP3 を指すようになります。ユーザーが次に「Files」を起動すると、システムインストール版ではなく、MP3 に埋め込まれた ELF 実行可能ファイルが実行されます。

  • 通常、デスクトップファイルは "appimagekit_...desktop" という名前になるため、システムアプリケーションを完全に上書きすることはできません。しかし、libappimage の Integrator.cpp は Name フィールドを検証やエスケープなしで取得するため、不正なデスクトップファイルに次のように追加できます:

    root@kitploit:~
    Name=/../org.gnome.Nautilus
    Name[en]=Files
    

    これにより、ファイルは ~/.local/share/applications/org.gnome.Nautilus.desktop として書き込まれ、システムにインストールされた Nautilus を隠蔽します。

緩和策

インストールされている libappimage のバージョンが 1.0.3 以上であることを確認してください。これにより、Name フィールドの検証が修正されます。 現時点では、Debian の libappimage はこれに 含まれておらず、かなり古いバージョンであることに注意してください。

すべてのバージョンの appimaged は脆弱であり、プロジェクトは非推奨となりました。 go-appimage は、*.AppImage という名前の AppImage のみを取得することでファイル名の問題を回避しています。AppImageLauncher は、インストール前にユーザーに許可を求めることでファイル名の問題を回避しています。

テスト

任意の音声ファイルを audio.mp3 に配置し、dart bin/write_mp3.dart を実行してペイロードをビルドし、変更された MP3 ファイルを書き込みます。これには Dart SDK と FreePascal がインストールされている必要があります。

実装上の注意

バイナリには Pascal が使用されました。これは、サブプロセス機能を使用した場合に、テストした他の言語(musl を使用した静的リンク C、Go)の中で最も小さい静的リンクバイナリを生成したためです。

テストでは、world.execute(me) が音声ファイルとして使用されました。これは適切であると考えられたためです。

ツールをダウンロード