出来事の日付:2026年6月18日。

ある独立研究者は、正規プロジェクトを複製し、そのREADMEファイルにダウンロードリンクを追加することにより、トロイの木馬に感染したアーカイブを配布しているGitHubリポジトリを約1万件特定したと述べている。この発見は、公開リストおよび検出スクリプトとともに、Orchid Filesに掲載された一人称形式の調査記事に記録されている。件数とマルウェアとの判定は、その研究者による分析に基づくもので、GitHubや法執行機関の報告ではない。

調査のきっかけは、著者自身のプロジェクトをBingで検索したところ、名前、説明、コミット履歴、コントリビューターの帰属表示が同じ別のリポジトリが結果に表示されたことだった。そのコピーには、ZIPアーカイブへのリンクを記載した、より新しいREADMEの変更が含まれていた。GitHubのトピックを通じて、同じパターンを持つ2つ目の類似プロジェクトも見つかった。これらのリポジトリでは、最新コミットが一見同一の更新に繰り返し置き換えられており、借用した開発履歴を維持しながら、悪意が疑われるリンクを新しい状態に保っていた。

著者は当初、2件の例をGitHubに報告した。記事によると、サポートは約6週間後にそれらを削除した。VirusTotalはアーカイブのURLだけを与えた場合には何も検出しなかったが、ZIP自体をアップロードするとトロイの木馬として警告した。これは、リンクのスキャン結果がクリーンでも、最終的に配信されるファイルの状態を反映していない可能性を示している。ユーザーはこの観察結果を、すべてのウイルス対策エンジンやアーカイブが同じように動作した証拠とみなすべきではない。

攻撃活動の規模を推定するため、研究者は数億件のリポジトリを個別に照会しようとするのではなく、GH Archiveを使用した。5日分の公開アクティビティには、約1,600万件のプッシュイベントが含まれていた。初期のフィルターでは、数時間おきに更新され、READMEの変更が1件あり、アーカイブへのリンクを含むプロジェクトを検索したが、該当したのはわずか14件だった。手作業で調べたところ、更新頻度に関する前提が誤っており、置換コミットの一部はファイル変更なしとして記録されることが分かった。

修正後の検索では、1日に1回から24回更新され、最新コミットのタイトルが「Update README.md」となっているリポジトリを調べた。著者によると、約4万件の候補が、完全なパターンに一致する1万件まで絞り込まれた。それらのリポジトリは異なるアカウントに属し、異なる名前を使い、GitHub上のフォークでもなかったため、通常のネットワーク上の関係性は発見にあまり役立たなかった。数カ月、あるいは1年以上オンラインのままだったものもあると報告されている。

研究者の仮説では、攻撃者は検索回数の少ない検索語で上位に表示させるために比較的新しいプロジェクトをコピーし、発見されやすくするため人気のトピックラベルを付け、信頼性を借用するため元のコントリビューターとコミットを残している。この動機はもっともらしいが、スキャンによって立証されたものではない。

運営者が誰か分からなくても、実用上の警告は明確だ。見覚えのあるプロジェクト名と本物らしい履歴があっても、ダウンロードの真正性は保証されない。開発者は、リポジトリの所有者と正規リンクを照合し、READMEだけを変更した最近の更新を調べ、URLだけでなくダウンロードした内容もスキャンすべきだ。報告された1万件のプロジェクトのリストに対するGitHubの回答は、提供された記事には含まれていなかった。