トラストの8ビット:eMudhra の CA キーが数ミリ秒で解読される

2026/10/21 18:08

トラストの8ビット:eMudhra の CA キーが数ミリ秒で解読される

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

セキュリティ研究者のスcott Helme は 10 月 17 日に、eMudhra の中間証明書 8 つが脆弱性により秘密鍵が侵害されたことを報告した。この脆弱性は、安全な P-384 鍵に必要な乱数ではなく弱い単一バイトの値が使用されていたことに起因する。これらの中間証明証は Sectigo の AAA Certificate Services ルートから 2025 年 5 月にクロス署名されており、発行開始日は 2025 年 4 月である(TLS 発行 CA が 6 つ(DV、OV、EV)、コード署名 CA が 2 つ)。鍵は発行時点ですでに実質的に公開されていた。その理由は、8 ビットの長さがブルートフォース攻撃での即時復号化を可能にするためであり、最大 255 ステップで解読できうるのに対し、安全な鍵は約 10^115 の可能性を持つべきであるからである。観測された値には 4, 56, 115 がある。この脆弱性の原因は、HSM で第 2 の弱い鍵を生成したセレモニースクリプトのバグおよび CSR 用の誤った鍵を選択するという人的ミスによるものである。

Apple、Google、Microsoft、Mozilla を含む主要ベンダーは当局に通知し、Chrome は発行後間もなく(10 月下旬)CRLSet でこれらの証明書をブロックし、その後に Mozilla の NSS アップデートで eMudhra ルートを削除、Chrome Root Store v43 に追加を確認した。現代のブラウザは Certificate Transparency (CT) エンフォースメントおよび引き上げ確認によって保護されており、CT ログに偽造チェーンは見つかっていない。しかし、非ブラウザシステムは依然として極めて脆弱である。curl、Python、Node、Go、Java、Windows CryptoAPI、デフォルトの CA バンドルなどのツールは、引き上げチェックや CT ログを確認せずにこれらの証明書を受入れる。重要なリスク暴露には CI/CD パイプライン、サーバー間 API コール、コード署名ルート(脆弱性は 2039 年 7 月まで続く)、更新できないファームウェアを搭載した IoT/OT デバイスが含まれる。推奨される対応策は OS の CA バンドル(ca-certificates)、certifi、Node、Homebrew を更新し、コンテナイメージを再ビルドすることである。ただし、アップデートできないデバイスは証明書の有効期限が 2039 年 7 月になるまで引き続きリスクに晒されたままとなる。

本文

eMudhra CA 鍵漏洩:「4」という数字で全ての鍵が解けた現実

eMudhra の証明書認証機関(CA)の私用鍵のうち、一部は単に 「4」 という数字そのものです。先頭が 4 でもなく、それ以降にランダムな数字がついているわけでもなく、まさに

4
です。その他にも「56」「115」などの極めて小さな値が使用されていました。

セキュリティ研究者がこの事案を Apple、Google、Microsoft、Mozilla および eMudhra に報告したのは 2024 年 10 月 17 日(土) です。報告後すぐに Chrome と Mozilla は対応を始めたものの、この脆弱性は既に 17 ヶ月間にわたり存在しており、汎用ハードウェア上でミリ秒単位で鍵が復元可能だったことが明らかとなりました。


脆弱性の概要と仕組み

漏洩したのは TLS 発行用 CA 6 つ(DV/OV/EV のそれぞれ 2 世代)および コード署名用 CA 2 つ、合計 8 つです。これらはすべて P-384 曲線を使用しており、理論上は非常に高いセキュリティが保証されていますが、以下の理由で完全に崩壊しています。

私用鍵(Private Key)の実態

  • 正常な私用鍵:

    • 384 ビットのランダムな数値。
    • 可能性の総数は (2^{384})(約 (10^{115}))。総当たり攻撃は不可能です。
    • 例:
      0x...426d78644298fc53df...
  • 脆弱な私用鍵 (

    d
    ):

    • すべて 8 ビット以下の数値 です。
    • 例:
      d = 4
      ,
      d = 56
      ,
      d = 115
      など。
    • 総当たり攻撃仅需 255 ステップ(最大)ですべての鍵を復元可能です。

脆弱性の詳細リスト

中間 CA種類私用鍵 d(16 進数 / 値)
EM DV TLS CA - G3BTLS
0x...004
(4)
EM DV TLS CA - G3CTLS
0x...156
(338? ※原文 156 は 16 進表記の可能性あり、脆弱な小整数)
EM EV TLS CA - G3BTLS
0x...115
(115)
EM EV TLS CA - G3CTLS
0x...038
(56)
EM OV TLS CA - G3BTLS
0x...093
(147? ※原文 155 は 16 進表記の可能性あり)
EM OV TLS CA - G3CTLS
0x...028
(4)
EM OV CS CA - G3Bコード署名
0x...042
(66)
EM OV CS CA - G3Cコード署名
0x...17D
(237? ※原文 237 は小整数)

※注:表内の「156」「155」などは、元のテキストの

d = 156
のまま記載されていますが、セキュリティ文脈上は 数値として極めて小さい脆弱な値 を指します。

これらの鍵で作成された証明書自体には不自然さはなく、符号化も正常ですが、**「封じ込められない」**という特徴があります。


なぜ「封じ込められない」のか?

通常、CA 鍵が漏洩するのは誰かが盗んだ場合です。しかし今回は以下の点が問題です。

  • 盗まれる必要がない: 鍵は既に公開状態でした(証明書が存在した日付から)。
  • 長期間の暴露: 2025 年 4 月以降、どの証明書を眺めた人がいても、汎用ハードウェアで即座に復元できました。
  • 検知と防御の不整合:
    • Chrome は Certificate Transparency (CT) を利用して偽造を検知します。
    • しかし、多くのソフトウェアや OS は CT をチェックせず、古い CA バンドルを信頼し続けます。

暴露されているシステムとリスク

最新のブラウザ(Chrome, Firefox, Safari)は CT 検証により安全ですが、それ以外の環境では深刻な脆弱性があります。

問題のあるシステム

  • 非ブラウザの TLS クライアント: curl, Python, Node.js, Go, Java, git パッケージマネージャなど。
  • 特徴:
    1. ディスク上の古い CA バンドルを信頼する。
    2. カスタムリビオケーション(撤回)チェックを行わない。
    3. Certificate Transparency (CT) をチェックしない。

具体的な被害シナリオ

  1. 自動更新ツールへの攻撃

    • rustup
      ,
      nvm
      , Homebrew インストーラーなど、HTTPS で署名チェックなしにコードをダウンロードするスクリプト。
    • リスク: 偽造証明書で攻撃者のコードが root 権限で実行される。
  2. CI/CD パイプライン

    • GitHub/GitLab ランナーや Jenkins が、古いベースイメージ上で
      curl
      や
      Python
      を使用して依存関係を取得・プッシュする。
    • リスク: クラウドキーやレジストリトークンが漏洩する。
  3. サーバー間通信(API)

    • 決済プロバイダー、ウェブフック、OAuth トークン交換。
    • リスク:
      api.stripe.com
      などの高価値 API に接続しても、偽造証明書で正当な通信として扱われ、機密情報が漏洩する。
  4. IoT および埋め込み機器

    • ルーター、カーシステム、医療機器、産業制御装置など。
    • リスク: ファームウェアが 2039 年まで固定されているため、撤回処理ができない。
  5. Windows コード署名

    • Windows は eMudhra のルート証明書を直接信頼しており、リビオケーションチェックが入っていなければ偽物の署名を信頼する。

実証実験の結果

テスト環境(Linux, macOS, Windows)で

api.stripe.com
への接続を試した結果、**デフォルト設定ではすべて SSL 検証に合格(OK)**しました。

# curl で api.stripe.com に接続(偽造証明書を使用)
scott@Middle-Earth:~$ curl -v --resolve api.stripe.com:18888:127.0.0.1 https://api.stripe.com:18888/
* Added api.stripe.com:18888:127.0.0.1 to DNS cache
* Hostname api.stripe.com was found in DNS cache
*   Trying 127.0.0.1:18888...
* サーバー証明書:
*   主題:CN=api.stripe.com
*   発行者:C=NL; O=eMudhra BV; CN=EM DV TLS CA - G3B
*   SSL certificate verify ok. <--- ここが問題
> GET / HTTP/1.1
< HTTP/1.0 200 ok

結論: ネットワーク経路上にいれば、8 ビットの鍵を解いた偽造証明書を介してトラフィックを傍受・改ざんできます。


今すぐすべきこと:対応策と課題

対応可能な機器については「アップデート」が解決策です。しかし、更新不可能な機器は大きなリスクです。

推奨される対応

  • OS とライブラリの更新:
    ca-certificates
    パッケージ(Linux)、certifi (Python)、Node.js のデフォルトバンドルなどを最新へアップデートする。
  • コンテナ環境の再構築: ベースイメージが変更を反映していない場合、コンテナイメージを再ビルドする必要がある。

対応不能なリスク(氷山の一角)

  • IoT 機器とネットワーク家電: ルーター、プリンター、テレビ、車載システムなど。
    • ファームウェア更新ができない機器は、2039 年までこの脆弱な CA を信頼し続ける。
    • これらは現在、非ブラウザソフトウェアにおける唯一のセキュリティ障壁だったため、完全に無防備です。

今後の展望

eMudhra と Sectigo は該当する中間 CA の撤回を発表していますが、CT をチェックしないクライアントにはこの発表は意味がありません。CA バンドルを配布するすべてのシステムが即時更新されることは期待できません。


情報源と追補

インシデントの原因と拡大

調査により、儀式中に使用したスクリプトにバグがあり、HSM で 2 つ目の弱すぎる鍵ペアが作成され、類似の名前ゆえに人的エラーにより CSR に誤った鍵が使われたことが判明しました。

さらに興味深いことに、AI エージェントへの単純なプロンプトだけで、これらの CA 私用鍵をすべて復元することに成功しました(例:Claude など)。

同じ日のほかのニュース

一覧に戻る →

2026/10/22 6:58

鉄道セキュリティ開示

## Japanese Translation: レイルウェイは、本日早些に暗号化された顧客の環境変数への未許可のサードパーティアクセスを検知した直後、すべてのデプロイを一時停止しました。証拠によれば、攻撃者は一部の変数の復号化された内容を取得しており、これには API キー、データベース認証情報、プライベートレジストリ認証情報といったシークレットが含まれている可能性があります。影響範囲は現在ユーザーの一部に限られていますが、深刻度のためレイルウェイは上流プロバイダーに対し鍵の取り消しを能動的に行っています。本件のインシデントは、AI 推論サービスへの侵害を狙うプラットフォーム企業を標的とする攻撃の広範な傾向と一致します。影響を受けたアカウントは、調査の詳細が確認されると、直接的にメールで連絡されます。範囲およびステータスに関するさらなる更新は、公式アナウンスメントおよび status.railway.com を通じて共有されます。ユーザーは強く推奨されるのは、直ちにレイルウェイ(API キーおよびレジストリ認証情報を含む)に格納されているすべての環境変数をローテートし、サービスのログで不審な活動を審査することです。ビルドが完全に復元されるまで、新しいバージョンのロールアウトは行えません。

2026/10/22 0:48

本日の PHP セキュリティリリースとセキュリティ強化の取り組み

## Japanese Translation: PHP は、無認証リモートコード実行 (RCE) を可能にする 2 つの深刻な脆弱性情報である CVE-2026-109618 および CVE-2026-109619 を解消するため、緊急に重要なセキュリティアップデート (バージョン 8.2.35 から 8.5.12) をリリースしました。これらの不備はメモリ管理およびエラー処理の核心的な問題に起因し、ほぼ全てのサーバーリクエストに影響を与えています。脆弱性は当初、2024 年の Quarkslab による監査の際に特定されましたが、互換性維持上のリスクとサードパーティ製拡張機能全体での合意形成が必要だったため、修正は遅延されていました。OpenAI や Wiz などの企業から 2026 年後半に追加の攻撃ベクトルの報告があり、PHP ファウンデーションは AI セキュリティエンジニアの Volker Dusch を補強した専用の「エコシステムセキュリティチーム」を設立し、高度な AI モデルを用いた主要テクノロジー企業と連携して複雑なエクスプロイトレポートを検証するパートナーシップを結んでいます。パッチの詳細が意図せずリークされたことに伴い(具体的には 10 月 20 日に誤った CVE ID が示された)、リリース日は 10 月 22 日から 10 月 21 日に前倒しされ、迅速な対応と安定性の維持の両立を図っています。以降、プロジェクトは 15 の CVE を公表し、100 以上のレポートを処理しており、AI を用いて検証を行いながら人間がパッチを最終調整しています。この強化されたセキュリティ態勢を持続させるため、PHP ファウンデーションは政府、ホスティングプロバイダー、ドイツ主権技術庁(German Sovereign Tech Agency)などの企業から資金支援を募り、サードパーティからの継続的な脅威への対応のために深層コードベースの専門家を採用しています。

2026/10/22 4:01

GitLab 重大パッチリリース

## Japanese Translation: 2026年10月21日、GitLab はコミュニティ版およびエンタープライズ版(バージョン 19.5.1、19.4.3、19.3.6 などを含む)の重大なセキュリティパッチをリリースし、自己管理ユーザーに対し即座にアップグレードを行うよう要請しました。これは、CVSS 10.0 の整数オーバーフローにより任意の実行コードが可能になる脆弱性 (CVE-2026-110264)、アカウント乗っ取りを可能にする認証上の欠陥 (CVE-2026-15723) および機密メタデータを晒す各種キャッシュ poisoning や権限回避などを是正するためです。GitLab.com と特定の専用テナントは既に安全ですが、アップグレードを遅らせるとシステムが攻撃に対して脆弱になります。管理者は未認証の実行コード実行やデータ漏洩を防ぐためにアップグレードの優先度を高める必要があります。特に、シングルノードのホスト型インスタンス(バージョン 19.4.3 および 19.3.6)は複雑なデータベースマイグレーションにより必須のダウンタイムを要しますが、マルチノード設定ではゼロダウンタイムで更新を進めることができます。これらのリスクはパッチ展開前にハッカーワン (HackerOne) の研究者によって特定されていました。 ## Text to translate: The summary is of high quality but could be slightly improved by explicitly mentioning the existence of multiple specific CVEs rather than just grouping them, and perhaps acknowledging the release of several version numbers beyond just the ones requiring downtime to be fully faithful to the list. However, given the constraints of a single paragraph, the current version is acceptable. **Improved Summary:** On October 21, 2026, GitLab released critical security patches for its Community and Enterprise editions (including versions 19.5.1, 19.4.3, 19.3.6, etc.), urging immediate upgrades for self-managed users to address severe vulnerabilities like CVSS 10.0 integer overflow enabling arbitrary code execution (CVE-2026-110264), authentication flaws allowing account takeover (CVE-2026-15723), and various cache poisoning and authorization bypasses that expose confidential metadata. While GitLab.com and specific dedicated tenants are already secure, delaying updates leaves systems open to exploitation. Administrators must prioritize upgrading to prevent unauthenticated code execution and data leaks. Notably, single-node self-hosted instances (specifically versions 19.4.3 and 19.3.6) will face mandatory downtime due to complex database migrations, whereas multi-node setups can proceed with zero downtime. These risks were previously identified by researchers on HackerOne before the patch deployment.