ブログ一覧に戻る
マルウェア2026年9月8日4分で読めます

pub.devのFlutterパッケージにXCSSETマルウェアが混入——初の感染事例を検出

Compromised Flutter package on pub.dev contains XCSSET malware

マルウェアマルウェア

この記事のポイント

【なぜ重要か】 DartおよびFlutterの公式パッケージリポジトリであるpub.devにおいて、初めてマルウェア混入パッケージが検出された。感染源はmacOSワーム「XCSSET」であり、パッケージ開発者のマシンが感染した状態で新バージョンが公開されたことで、リポジトリにマルウェアが紛れ込んだ。AndroidやXcode、Gitを利用する開発者も連鎖的に感染するリスクがあるため、Flutter...

【なぜ重要か】 DartおよびFlutterの公式パッケージリポジトリであるpub.devにおいて、初めてマルウェア混入パッケージが検出された。感染源はmacOSワーム「XCSSET」であり、パッケージ開発者のマシンが感染した状態で新バージョンが公開されたことで、リポジトリにマルウェアが紛れ込んだ。AndroidやXcode、Gitを利用する開発者も連鎖的に感染するリスクがあるため、Flutter・Dart開発者に限らず広範な開発環境への影響が懸念される。

【ポイント】

  • 感染パッケージの特定:universal_file_viewer(バージョン0.1.5、約500ダウンロード)のexample/ディレクトリ内にXCSSETが混入。lib/配下のDartコード自体は完全にクリーンであり、依存パッケージとして追加してビルドするだけでは感染しない。リポジトリをクローンしてexampleアプリをローカルビルドした場合にのみリスクが生じる。
  • 3つのビルド設定への注入:build.gradle.ktsにはGradleのpreBuildフック(C2ドメイン:5yotmxcc54l9xda[.]ru)、iOSおよびmacOSのproject.pbxprojにはPBXBuildRuleエントリ(各C2ドメイン:qdgs232i-q[.]ru、ejntin6hkjt7gj2[.]ru)がそれぞれ独立して注入されており、いずれも文字列スキャナを回避するためにhexやbase64で難読化されている。
  • 感染の連鎖(ワーム動作):感染マシン上のすべてのAndroid Gradleプロジェクト・Gitリポジトリ・Xcodeプロジェクトに自動的に悪意あるフックを書き込む3つの伝播モジュール(android_finder・git_finder・replicator_finder)が存在し、そのプロジェクトをビルドまたはコミットした他の開発者へも感染が拡大する。
  • 高度なステルス性と永続化:4段階の感染チェーン(C2へのコンタクト→暗号化シェルスクリプトのダウンロード→AES-256-CBCで自己復号するAppleScript→コアオーケストレータ起動)を経て動作し、永続化モジュールはDockのLaunchpadタイルを偽バンドルに差し替えることで再起動後も生き残る。標準的な永続化チェック場所には痕跡を残さない。
  • 広範な情報窃取機能:Chrome・Safari・Firefoxの認証情報やセッショントークン、Telegramセッションデータ、メモ・リマインダー・カレンダーのデータ、クリップボードの内容、ホームディレクトリ内のファイルを窃取する複数のモジュールが存在する。窃取したデータはAES-256-CBCで暗号化されC2へ送信され、モジュール自体はディスクに書き込まれずメモリ上で実行される。

【まとめ】 開発者マシスの感染がサプライチェーンを通じて他の開発者へ連鎖するXCSSETの事例が、pub.devでも確認された。universal_file_viewer v0.1.5を依存パッケージとして利用するだけであれば直接的な感染リスクは低いが、リポジトリをクローンしてexampleをビルドした開発者や、GitHubで同様に感染したプロジェクトを扱った開発者は自身のマシンを確認すべきである。Aikidoユーザーはフィード上でマルウェアフィルターを適用して手動再スキャンを実施し、未使用の場合は無料アカウントを作成してリポジトリを接続することを推奨する。

原文を読む

Aikido Security Blog

英語で詳細な技術情報を確認

原文を読む

コメント・質問

この記事についてのコメントや質問を投稿できます

コメントを投稿するにはログインが必要です

ログインする

読み込み中...