Firebase の Apple/iOS SDK(Cloud Firestore)に、侵害された認証局(CA)に由来するルート証明書が埋め込まれていたことがわかり、2026-10-22 に修正版 firebase-ios-sdk 13.1.1 と 12.19.3 が公開された。古い SDK のままだと、Firestore との通信を中間者に盗み見られる恐れがある。攻撃は不正アクセスというより「信頼してはいけない証明書を SDK が信頼し続けてしまう」問題で、対策はライブラリを更新して、新しいビルドをユーザーに再配信することだ。この記事は、何が起きたか・対象と対象外・自分のアプリの確かめ方を、サプライチェーン攻撃とは|手口・防御ツール比較・npm 12の新機構まで実践解説 の文脈も踏まえて一次情報で整理する。
TIMELINE時系列
10/22 リリース → 通知 → 更新・再配信
-
2026-10-22 リリース
firebase-ios-sdk 13.1.1 と 12.19.3 を公開。Cloud Firestore のセキュリティ更新
-
開発者へ通知
Google が対象の Firebase 開発者へメール通知(翻訳版は後日・3営業日ほど)
-
要対応
影響する SDK を使うアプリは更新版をビルドし、ユーザーへ再配信する
まず確かめること(30秒・2026-11-05)
- ・Firebase のApple/iOS SDK で Firestore を使っているか。使っていれば対象
- ・firebase-ios-sdk を 13.1.1 以上(12系なら 12.19.3)へ更新し、アプリを再配信
- ・原因は侵害された eMudhra 中間CA 由来の証明書が埋め込み trust store にあったこと
- ・Android・Web・サーバーSDK・Firestoreバックエンドは対象外
今すぐ確かめるなら、お使いのロックファイルで現在の版を見る(詳細は後半「自分のアプリを確認する」)。
git fetch --all --prune
# CocoaPods を使っている場合(Podfile.lock に版が載る)
grep -nE "FirebaseFirestore|firebase-ios-sdk" Podfile.lock
# Swift Package Manager を使っている場合(Package.resolved に版が載る)
grep -rnE "firebase-ios-sdk" -A5 --include=Package.resolved .
何が起きたか——侵害されたCAと埋め込み証明書
firebase-ios-sdk(Apple 向け)は、Firestore への接続を検証するためのルート証明書を SDK 内に同梱している(埋め込み trust store)。OS 標準の信頼ストアに任せきりにせず、SDK 側で接続先の正当性を確かめるための仕組みだ。今回の問題は、その埋め込み trust store の中に、侵害された eMudhra 中間CA に連なるルート証明書が含まれていたことにある。
WHAT HAPPENED何が起きたか
侵害されたCA由来の証明書が埋め込まれていた
-
1
古いSDKは埋め込み trust store を持つ
firebase-ios-sdk(Apple)は Firestore 接続用のルート証明書群を SDK 内に同梱している
-
2
その中に侵害されたCA由来の証明書
侵害された eMudhra 中間CA に連なるルート証明書が、埋め込み trust store に含まれていた
-
3
不正証明書を信頼しうる=MITMの恐れ
そのCAで発行された偽の証明書を信頼すると、Firestore 通信を中間者に盗み見られる恐れがある
-
4
13.1.1 / 12.19.3 で削除
該当ルート証明書を埋め込み trust store から除去(PR #16930 / #16933)。更新で危険な信頼を外す
侵害された CA が発行した「本物に見える偽の証明書」を SDK が信頼してしまうと、攻撃者は Firestore との通信路に割り込み、暗号化されているはずの中身を復号して盗み見ることができてしまう(中間者攻撃=MITM)。修正版はこの該当ルート証明書を埋め込み trust store から削除し、危険な信頼を外した——GitHub のリリースノートでは「Cloud Firestore security update to protect client connections against a compromised certificate authority」、Firestore の CHANGELOG では「Removed compromised eMudhra intermediate CA root certificates from embedded trust store」と記されている(PR #16930 / #16933)。
補足:これは TLS 実装やコードの欠陥というより、信頼する証明書の棚卸し(trust store の衛生)の問題だ。CA が侵害されたときは「そのCAを信頼しない」ようにするのが筋で、SDK に証明書を同梱している以上、更新で配り直すしかない。攻撃の具体的手順や悪用条件はベンダーから公表されておらず、本記事でも扱わない。CVE 番号は本記事確認時点で付番を確認できなかった。
そもそも、なぜ SDK が証明書を同梱するのか。OS 任せにしない分、接続先を厳しく絞れる利点がある一方で、CA 侵害のように「信頼の前提」が崩れたときは、同梱している側がビルドを配り直さないと直せないという裏返しのコストがある。今回はその後者が顕在化した形だ。これは Firebase 固有というより、証明書を固定して運用する(ピンニング)全般に共通する「更新運用の宿題」でもある——固定するなら、固定したものが腐ったときの配り直しまでを設計に含めておく必要がある。
影響するSDK・しないSDK
Google の通知メールによれば、影響範囲はプラットフォームで分かれる。要点は「Apple ネイティブ層を使う経路は対象、それ以外は対象外」だ。
WHO IS AFFECTED対象 と 対象外
Apple系は要更新、Android/Web/バックエンドは対象外
影響あり(更新が必要)
- Firebase Apple / iOS SDK(Firestore)
- Flutter・C++・Unity(Apple ネイティブ経由)
- React Native Firebase(コミュニティ)
- = Firestore を使う iOS/Apple アプリ
影響なし
- Firebase Android SDK
- Firebase Web SDK
- Google Cloud サーバー SDK(Firestore)
- Cloud Firestore バックエンド本体
| 区分 | 対象 |
|---|---|
| 影響あり(更新が必要) | Firebase Apple / iOS SDK(Firestore)、Flutter、C++、Unity、React Native Firebase(コミュニティ) |
| 影響なし | Firebase Android SDK、Firebase Web SDK、Google Cloud サーバー SDK(Firestore)、Cloud Firestore バックエンド本体 |
Flutter・C++・Unity・React Native Firebase が対象に入るのは、これらが iOS 上では内部で Apple ネイティブの Firestore 実装を使うためだ。逆に、Android・Web・サーバーサイドは別の経路でバックエンドにつながるため、今回の埋め込み証明書の問題の外にある。Cloud Firestore のバックエンドサービス自体は影響を受けないので、サーバー側で直す作業は不要だ。
対策——どの版へ更新すればよいか
やることは「firebase-ios-sdk を修正版へ上げて、アプリを再ビルドして再配信する」。使っている Firebase のメジャー系で版が分かれる。
| 使っている系 | 上げる先 | 備考 |
|---|---|---|
| Firebase 13 系 | 13.1.1 以上 | 最新系。通常はこちら |
| Firebase 12 系を継続 | 12.19.3 | CocoaPods 利用プロジェクトを含む |
# CocoaPods(Podfile): 13系へ上げる例
pod 'Firebase/Firestore', '~> 13.1'
# 反映: pod update FirebaseFirestore
Swift Package Manager なら、Xcode の Package Dependencies で firebase-ios-sdk のバージョン規則を 13.1.1 以上(または 12.19.3)に引き上げ、Package.resolved を更新する。ライブラリを上げただけでは対策は完了しない——エンドユーザーの端末に新しいビルドが届いて初めて、危険な証明書を信頼しない状態になる。App Store の審査・配信のリードタイムを見込んで、早めに更新版を出すのがよい。
自分のアプリを確認する
まず最新を取り込み、ロックファイルで現在の版を確かめる。git fetch を先に走らせるのは、手元が古いまま判断しないためだ。
git fetch --all --prune
# CocoaPods: Podfile.lock に "FirebaseFirestore (x.y.z)" の形で載る
grep -nE "FirebaseFirestore|firebase-ios-sdk" Podfile.lock
# Swift Package Manager: Package.resolved に firebase-ios-sdk の version が載る
grep -rnE "firebase-ios-sdk" -A5 --include=Package.resolved .
表示された版が 13.1.1 未満(12 系なら 12.19.3 未満)なら更新が必要だ。Flutter は pubspec.lock、React Native Firebase は iOS 側の Podfile.lock、Unity は使用している Firebase Unity SDK の版を確認する。見つからない・判断がつかないときは、Firebase を Firestore 用途で使っていないか、別経路で入っている可能性があるので、依存の入れ方から棚卸しする。
なお、この確認でわかるのは「いま依存している版」だけだ。版を新しくしても、古いビルドがユーザーの端末に残っていれば安全とは言えないし、過去に実際に盗み見られたかどうかを判定するものでもない。あくまで「更新が要るかどうか」を切り分けるための確認である。こうした依存の更新を通知頼みにしないために、Renovate・Dependabotでサプライチェーン更新に自動追従する 仕組みや、脆弱性の検知をCIに組み込む 運用を併せておくと、次に同種の更新が来たときの取りこぼしが減る。
なぜ「更新して再配信」まで必要か——影響範囲
今回の対策が「ライブラリ更新」で終わらないのは、危険な証明書がユーザーの端末上のアプリ(=配布済みビルド)に埋め込まれているからだ。あなたのリポジトリで版を上げても、すでにインストールされているアプリは古い trust store を持ったまま動く。だから、更新版をビルドしてストア経由で配り直すところまでが対策になる。
影響の広がりを冷静に見ると、(1) 盗み見られうるのは Firestore との通信路で、(2) 成立には「侵害された CA で発行された偽証明書を使って通信路に割り込める」状況が要る。とはいえ、CA 侵害を前提にした MITM は公共 Wi‑Fi などで現実味があり、ベンダーが緊急のセキュリティ更新として出した以上、先送りする理由はない。Star 数や派手さではなく「自分のアプリがどの SDK 経由で Firestore に触れているか」を基準に、対象なら淡々と上げる——それが今回の正しい動きだ。
まとめ
- ・原因:firebase-ios-sdk(Apple)の埋め込み trust store に、侵害された eMudhra 中間CA 由来のルート証明書。
- ・リスク:古い SDK のままだと Firestore 通信を MITM で盗み見られる恐れ。
- ・対策:13.1.1 以上(12系は 12.19.3)へ更新し、再ビルドしてユーザーへ再配信。
- ・対象外:Android・Web・サーバーSDK・Firestore バックエンド本体。CVE は本記事確認時点で未付番。
参照ソース
- firebase-ios-sdk 13.1.1 リリース(GitHub)(「compromised certificate authority」「eMudhra」の一次記述・2026-10-22)
- firebase-ios-sdk 12.19.3 リリース(GitHub)(Firebase 12 系・CocoaPods 向け)
- Firestore CHANGELOG(firebase-ios-sdk)(「Removed compromised eMudhra intermediate CA root certificates from embedded trust store」)
- Firebase Apple SDK リリースノート(公式)(版ごとの公式ノート。最新は公式で確認)
- Google からの開発者向け通知メール(ユーザー提供・影響プラットフォームの区分の出典)





