
2025年6月、NPMで配布されていた人気パッケージ群「@react-native-aria」シリーズに、マルウェアが混入していたことがセキュリティ企業Aikido Securityの調査により明らかになりました。これらのパッケージは、累計100万回以上の週次ダウンロード数を誇り、React Native開発に広く使われていたものです。
目次
React Aria とは
「React Aria(リアクト アリア)」とは、Adobeから提供されているアクセシビリティ(Accessibility)に対応したUIコンポーネントのためのOSSのライブラリ群です。Reactを使ったWebアプリケーション開発で、視覚障がい者やキーボード操作ユーザーを含むあらゆるユーザーにとって使いやすいUIを構築するために用いられます。
発覚の経緯:サイバーセキュリティ企業が不審なコードを検出
問題を最初に発見したのは、オランダを拠点とするセキュリティ企業「Aikido Security」です。同社の研究者が、@react-native-aria/focus
の最新版(0.2.10)に不審な難読化されたマルウェアコードが追加されていることを確認し、すぐにGluestackのGitHubリポジトリ上にIssue(#2894)を通じて報告しました。
感染コードは、lib/index.js
の最終行に多数のスペースで埋もれるように埋め込まれており、一見しただけでは判別が難しい設計です。
影響を受けたパッケージ一覧(2025年6月時点)
以下に影響し、毎週約1,020,000件(100万件超)がダウロードされています。
パッケージ名 | バージョン | 週次ダウンロード数(推定) |
---|---|---|
@react-native-aria/button | 0.2.11 | 51,000 |
@react-native-aria/checkbox | 0.2.11 | 81,000 |
@react-native-aria/combobox | 0.2.10 | 51,000 |
@react-native-aria/disclosure | 0.2.9 | 3 |
@react-native-aria/focus | 0.2.10 | 100,000 |
@react-native-aria/interactions | 0.2.17 | 125,000 |
@react-native-aria/listbox | 0.2.10 | 51,000 |
@react-native-aria/menu | 0.2.16 | 22,000 |
@react-native-aria/overlays | 0.3.16 | 96,000 |
@react-native-aria/radio | 0.2.14 | 78,000 |
@react-native-aria/switch | 0.2.5 | 477 |
@react-native-aria/toggle | 0.2.12 | 81,000 |
@react-native-aria/utils | 0.2.13 | 120,000 |
@gluestack-ui/utils | 0.1.17 | 55,000 |
@react-native-aria/separator | 0.2.7 | 65 |
@react-native-aria/slider | 0.2.13 | 51,000 |
@react-native-aria/tabs | 0.2.14 | 70,000 |
何が起きたのか:大規模なサプライチェーン攻撃
この事件は、ソフトウェア開発における「サプライチェーン攻撃」の典型的な事例です。攻撃者はパッケージの管理権限を奪取し、一見正規のアップデートに見せかけた形でマルウェアを挿入。開発者がいつも通りNPMから依存パッケージを更新するだけで、マルウェアが混入する仕組みです。
悪意のあるコードは、被害者の環境にインストールされると攻撃者のC2(Command & Control)サーバーに接続し、さまざまなコマンドを受け付けるようになります。
主な機能としては
-
任意ディレクトリの移動(
cd
) -
ファイルのアップロード(
ss_upf:f,d
) -
シェルコマンドの実行(
child_process.exec()
経由) -
Windowsの
PATH
変数を改変してPython環境をハイジャック
という極めて悪質な機能が含まれていました。
これにより、開発者の端末がリモートから完全に制御され、プロジェクトソースコードや認証情報、ビルド済み成果物までが窃取される危険性があります。
GitHubでのやり取り:セキュリティ研究者と開発者の応答
Aikido Securityの研究者Charlie Eriksen氏は、各Gluestackリポジトリに「パッケージが汚染されている」とするIssueを立て、即座に警告を発しました。一方で、開発元のGluestackからは当初反応がなく、公開から十数時間後にようやくアクセストークンの無効化と該当パッケージの「非推奨(deprecate)」処理が行われました。
GitHubのIssueでは以下のやり取りが確認されています
-
「該当バージョンは削除できなかった。依存関係の都合で非推奨処理に留めた」(Gluestack開発者)
-
「非推奨メッセージに“国家レベルのサイバー攻撃者によりマルウェアが混入した”と明記すべき」(AikidoのEriksen氏)
また、他のユーザーからも「自分は昨晩Windows環境でインストールしたばかり。非常に心配だ」との声が上がっており、すでにマルウェアを含んだ開発環境が存在する可能性が指摘されています。
被害の拡大と今後の注意点
今回の一件は、React Native系のUI開発に携わる多くのプロジェクトに影響を与える可能性があります。特に、Expo・React Native CLI・Next.jsなど、複数のプラットフォームで利用されているため、継続的インテグレーション(CI)やビルド環境に感染した場合の被害は計り知れません。
また、この事件は、同一の攻撃者グループが6月初旬に他のNPMパッケージ(biatec-avm-gas-station
、lfwfinance/sdk
など)を改ざんしていたこととも関係していると見られています。
参照