SAPのnpmパッケージmbtと@cap-jsの不正な版の公開
- カテゴリ
- マルウェア
StepSecurityの2026年4月29日の報告によると、SAPのnpmパッケージ4本(mbt、@cap-js/sqlite、@cap-js/postgres、@cap-js/db-service)に、インストール時にBunランタイムを起動して認証情報を盗むプログラムを実行する不正な版が公開された[9]。不正な版は、npmのレジストリの記録の版の一覧に残っていない[4、5、6、7]。
経緯
不正な版の動作
StepSecurityの報告では、不正な版はどれも同じpreinstallフックを持ち、ローダーのsetup.mjsはバイト単位で同一だった[9]。フックが起動するのは、11.6 MBの難読化された認証情報窃取プログラムである[9]。盗んだ認証情報は、被害者自身のGitHubアカウントに作るリポジトリで持ち出される[9]。そのリポジトリには「A Mini Shai-Hulud has Appeared」と記されている[9]。
Aikidoは、@cap-js/sqlite 2.2.2の通常のファイルが正規の2.2.1とバイト単位で一致したと報告した[11]。改変はインストールフックと追加のペイロードだけだった[11]。
StepSecurityの報告では、ペイロードが到達できるすべてのリポジトリへのコミットで加えるのは、2つの設定ファイルである[9]。Claude CodeのSessionStartフックを悪用する.claude/settings.jsonと、「runOn: folderOpen」を指定した.vscode/tasks.jsonで、リポジトリを開くとペイロードが再び実行される[9]。持ち出すデータはAES-256-GCMで暗号化し、鍵はペイロードに埋め込んだRSA-4096の公開鍵で包む[9]。システムのロケールがruなら処理を終える[9]。
mbtの公開に使われたトークン
StepSecurityの報告によると、mbt 1.2.48は、正規のmbtの公開と同じcloudmtabotのサービスアカウントで公開された[9]。mbtはOIDCのtrusted publishingを使ったことがなく、静的なnpmの自動化トークンに頼っていた[9]。StepSecurityは、攻撃者がこのトークンを得た経路は公開リポジトリのデータからは見えないと書いた[9]。
Aikidoは、CircleCIでプルリクエストのビルドにnpmトークンが露出していたことを、公開された手がかりが有力な原因として指すと報告した[11]。4月29日、SAP/cloud-mta-build-toolで「feat: ci speedup」という短命のドラフトのプルリクエストが開かれ、数分で閉じられ、ブランチは後に強制プッシュされた[11]。このプルリクエストのビルドでは、CircleCIがCLOUD_MTA_BOT_NPM_TOKENなどを含むプロジェクトの秘密を伏せ字で列挙していた[11]。Aikidoは、このビルドを最初の認証情報窃取の最も有力な手がかりとした[11]。
trusted publisherを経た公開
StepSecurityの報告では、攻撃者はSAPの開発者のGitHubアカウントを侵害し、cap-js/cds-dbsのupdate/releasesブランチにコミットを押し込んだ[9]。最初のコミットは、release-please.ymlをmain以外のブランチで動くように変え、公開の手順を手動のOIDCトークン交換に置き換えた[9]。このトークン交換は、npmトークンを二重のbase64でワークフローのログに出した[9]。コミットの作者名はclaudeで、署名の無い偽装の名義だった[9]。
StepSecurityは、npmのtrusted publisherの設定が特定のブランチやワークフローでなくリポジトリ全体を信頼していたため、この手口が成り立ったと説明した[9]。公開の後、後片付けのコミットがOIDCトークン交換のコードを消した[9]。ワークフローの実行は取り消され、ブランチは強制的に戻された[9]。それでも、不正なパッケージは既にレジストリに届いていた[9]。
The Hacker Newsは、cds-dbsのチームが2025年11月にnpmのOIDCのtrusted publishingに移行していたとするSafeDepの説明を報じた[19]。
攻撃者の帰属の評価
StepSecurityの報告では、今回の攻撃はShai-Huludキャンペーンの第3波で、2025年9月の最初の波と、11月のThe Second Comingに続く[9]。
Wizは、過去に複数のライブラリを侵害したTeamPCPの運用者によるものと高い確度で評価した[10]。根拠には、持ち出した秘密の暗号化に使うRSAの公開鍵が共通であることを挙げた[10]。ロケールがruなら終了する確認はCheckmarxとBitwardenの侵害にもあり、npmのインストールフックはBitwarden CLIの侵害と同じだと書いた[10]。2025年秋のShai-Huludの活動への言及はあるが、確定的に結び付けることも、別の主体と言うこともできないとした[10]。
時系列
| 日付 | 主体 | 内容 | 資料 |
|---|---|---|---|
| 2026年 | - | mbt 1.2.48が公開された(UTC) | [4] |
| 2026年 | Socket | mbt 1.2.48を検知した(UTC) | [12] |
| 2026年 | 攻撃者 | cap-js/cds-dbsのupdate/releasesブランチに最初のコミットを作った(UTC) | [9] |
| 2026年 | - | @cap-js/sqlite 2.2.2が公開された(UTC) | [5] |
| 2026年 | Socket | @cap-js/sqlite 2.2.2を検知した(UTC) | [12] |
| 2026年 | - | @cap-js/postgres 2.2.2と@cap-js/db-service 2.10.1が公開された(UTC) | [6、7] |
| 2026年 | Socket | @cap-js/postgres 2.2.2と@cap-js/db-service 2.10.1を検知した(UTC) | [12] |
| 2026年 | - | @cap-js/sqlite 2.4.0、@cap-js/postgres 2.3.0、@cap-js/db-service 2.11.0が公開された(UTC) | [5、6、7] |
| 2026年 | - | mbt 1.2.49が公開された(UTC) | [4] |
| 2026年 | Wiz | TeamPCPの関与の確認を報告に追記した(UTC) | [10] |
| 2026年 | StepSecurity | 影響を受けたリポジトリにGitHubのissueを立て、SAPのセキュリティチームに直接通知した | [9] |
| 2026年 | StepSecurity、Wiz、Aikido、Onapsis、Sophos | 観測の報告を公開した | [9、10、11、12、13] |
| 2026年 | SAP | Security Note 3747787を出した | [12] |
| 2026年 | - | 早朝〜午前(日本時間)にSAPのパッケージがnpmから順に取り下げられ、@cap-js/sqliteが早く、ほかは遅れた | [14] |
| 2026年 | GitHub(CNA) | CVE-2026-46421を公開した | [8] |
影響範囲
CVE-2026-46421の記録の説明によると、SAP Cloud Application Programming Modelは企業向けのクラウドアプリケーションを作るツールで、cap-js/cds-dbsはそのSQLデータベースサービスのモノレポである[8]。
npmのレジストリの記録では、mbtのリポジトリはSAP/cloud-mta-build-toolを、@cap-jsのパッケージはcap-js/cds-dbsを指す[4、5、6、7]。mbtの記録は2019年2月12日に作られた[4]。@cap-jsの記録の作成は、@cap-js/sqliteが2023年4月4日、@cap-js/postgresと@cap-js/db-serviceが6月23日だった[5、6、7]。
Onapsisは、不正なパッケージを入手できたのは4月29日の2〜4時間で、クリーンな版が出て感染した版を置き換えたと書いた〔注1〕[12]。
Wizの報告では、侵害された利用者と攻撃者が作った持ち出し用のリポジトリの量は、Shai-HuludやShai-Hulud 2.0より大幅に少ないとみられる[10]。
対応と現状
SAPは、SAP CommunityのSAP社員のブログ欄に、CAPの開発者にSAP Note 3747787が示す解決策の適用を求める投稿を掲載した[1]。SAPはsap.comにFAQの文書も掲載している[2]。cap-js/cds-dbsのリポジトリには、GitHub Security AdvisoryのGHSA-pvw4-cvr4-97p8が掲載された[3]。
Onapsisの報告によると、Security Note 3747787は、npmに配られた不正なオープンソースパッケージを扱うノートである[12]。
CVE-2026-46421の記録では、影響を受ける製品は@cap-jsのパッケージで、mbtは含まれていない[8]。弱点の種類はCWE-506(埋め込まれた悪意あるコード)で、CVSS 4.0の基本値は9.3(Critical)である[8]。
記録の説明によると、不正なパッケージは認証情報を集め、自己増殖を試みた[8]。修正版は@cap-js/sqliteが2.4.0以上、@cap-js/postgresが2.3.0以上、@cap-js/db-serviceが2.11.0以上で、既知の回避策は無い[8]。侵害された版を入れたことがあれば、そのマシンで使える全認証情報を侵害されたものとみなし、更新する必要がある[8]。対象の認証情報には、npmトークン、クラウドの認証情報、SSH鍵、GitHubのPATが挙がっている[8]。
未公表の事項
- 攻撃者がmbtの公開に使われたnpmトークンを入手した経路
- 不正な版をインストールした利用者と組織の数
- mbtについてのCVEの採番
- SAPの社内のシステムと顧客のデータへの影響
- 攻撃者の帰属についてのSAPの見解
注
- 〔注1〕Onapsisがsocket.devの報告として載せた表では、置き換えの時刻は@cap-jsのパッケージが13時33分、mbtが15時40分(UTC)だった[12]。
出典
当事者
- [1]SAP SE『CAP Developers - Call to Action to mitigate and Apply Solution provided in SAP Note 3747787』(公開日不明、保存記録のみ) 保存記録
- [2]SAP SE『EXTERNAL Frequently asked questions』(公開日不明、保存記録のみ) 保存記録
- [3]SAP SE『GHSA-pvw4-cvr4-97p8(Supply chain compromise via malicious package versions)』(公開日不明、保存記録のみ) 保存記録
関係組織
- [4]npm, Inc.『mbt』(2019年2月12日公開、2026年11月7日閲覧)
- [5]npm, Inc.『@cap-js/sqlite』(2023年4月4日公開、2026年11月7日閲覧)
- [6]npm, Inc.『@cap-js/postgres』(2023年6月23日公開、2026年11月7日閲覧)
- [7]npm, Inc.『@cap-js/db-service』(2023年6月23日公開、2026年11月7日閲覧)
公的機関
調査・観測
- [9]StepSecurity, Inc.『A Mini Shai-Hulud Has Appeared: Obfuscated Bun Runtime Payloads Hit SAP-Related npm Packages』(2026年4月29日公開)
- [10]Wiz, Inc.『Supply Chain Campaign Targets SAP npm Packages with Credential-Stealing Malware』(2026年4月29日公開、2026年4月30日更新)
- [11]Aikido Security BV『Mini Shai-Hulud Targets SAP npm Packages With a Bun-Based Secret Stealer』(2026年4月29日公開)
- [12]Onapsis, Inc.『Emerging Supply Chain Attack ("Mini Shai-Hulud") Targeting SAP Cloud Application Programming Ecosystem』(2026年4月29日公開、2026年4月30日更新)
- [13]Sophos Ltd.『'Mini Shai-Hulud' supply chain attack targets SAP npm packages』(2026年4月29日公開)
- [14]GMO Flatt Security株式会社『Mini Shai-Hulud の概要と対応指針(2026年4月末 連続パッケージ侵害)』(2026年5月1日公開、2026年5月12日更新)
報道機関
- [17]Wired Business Media『SAP NPM Packages Targeted in Supply Chain Attack』(2026年4月30日公開)
- [18]Wired Business Media『1,800 Hit in Mini Shai-Hulud Attack on SAP, Lightning, Intercom』(2026年5月1日公開)
- [19]The Hacker News『SAP-Related npm Packages Compromised in Credential-Stealing Supply Chain Attack』(2026年4月29日公開)
- [20]Heise Medien GmbH & Co. KG『Malicious npm packages: SAP software compromised』(2026年5月4日公開)
更新記録
- 2026年5月3日:公開した。
- 2026年5月4日:heise onlineの5月4日の記事(出典20)を加え、「影響範囲」の表1を改めた。
- 2026年5月12日:GMO Flatt Securityの報告の5月12日の更新(出典14)を加え、「時系列」を改めた。
- 2026年7月15日:CVE Programの7月15日のCVE-2026-46421の記録(出典8)を加え、「時系列」「影響範囲」「対応と現状」「未公表の事項」を改めた。
