概要
eMudhraという認証局で、インターネット上の通信相手を確認するための証明書に関わる鍵が侵害された問題が公表されました。悪用されると、偽のサイトやサービスを本物と誤認して接続するおそれがあります。
当社では、関連ソフトウェアの更新と影響範囲の確認を進めています。一部の更新は完了していますが、すべての環境の確認は終わっていないため、現在も対応中です。本レポートは2026年10月23日時点の状況です。
SSL証明書とは
SSL/TLS証明書は、通信相手が本物かを確かめ、安全に通信するために使う電子的な身分証明書です。認証局は、この証明書の発行や信頼性の確認に関わる機関です。
今回は、その認証局の鍵に問題が見つかりました。自社サイトの証明書だけでなく、外部サービスへ接続するときに証明書を確認するソフトウェアも調査の対象になります。
対応状況
Node.jsを使う環境:対策を含む修正版への更新を進めています。対象環境では、22.23.4および24.22.1への更新と本番への反映を確認済みです。ただし、これだけで各サービスのすべての通信環境が対策済みとは判断していません。
一部サービスの証明書を確認する別の処理:修正内容を用意し、テストと試験用環境での確認を終えています。正式版への取り込みと本番反映は未完了です。
対象サービスの本番環境:外部サービスへの通信はCloudflare Workersの仕組みを使っています。アプリのコードと登録された環境変数には、証明書確認を無効にする設定や独自CAの指定は見つかりませんでした。ただし、Cloudflare側の信頼設定と、問題の証明書を本番で拒否する動作は未確認です。直接確認するためのCloudflare認証が必要です。
対象サービスの開発・運用端末:今回確認した1台では、標準curlが問題の証明書を受け入れたため、curlとGitで更新済みの証明書一覧を使うよう修正しました。通常の接続が成功し、問題の証明書を拒否することを確認しています。Node.jsの既定版も修正版へ更新しました。他の担当者の端末や別の実行環境は、今回の確認対象に含まれません。
対象サービスの管理設定:本番で修正版Node.jsが使われたことは確認済みです。一方、管理サービス上には古い版指定が残っています。リポジトリの修正済み設定との同期を試みましたが、Sentry連携の接続エラーで停止しました。連携を復旧して設定を同期する必要があります。
安全性の確認と今後の対応
今後、未反映の修正を適用し、各環境が問題のある証明書を受け入れないことを確認します。通信記録などの確認範囲も整理し、必要な追加調査を進めます。
本件について、当社の通信経路や記録を網羅した調査は完了していません。問題が公表されたことや一部の更新が済んだことだけで、被害の有無や全体の安全性を断定していません。
「発生日時」には、案内サイトに記載された公表日である2026年10月20日を使用しています。鍵が侵害された日時や、当社への攻撃が発生した日時を示すものではありません。対応が継続中のため、「復旧日時」は未記入です。
技術情報
公表された問題:8件のeMudhra中間CA証明書の秘密鍵に関する問題です。Mozillaの報告では、うち6件がTLS用、2件がコード署名用とされています。鍵生成の不備により、証明書から秘密鍵を復元できることが確認されています。
影響の確認方法:証明書の失効情報を自動で確認しないクライアントや、独自のCA証明書一覧(信頼ストア)を使う環境は、個別の更新・確認が必要になる場合があります。ブラウザー側の対策状況を、そのままサーバーやコマンドラインツールに当てはめることはできません。
Node.jsの対策:Node.js 24.22.1と22.23.4にはeMudhra中間CA侵害に対するCA証明書更新が含まれています。独自に追加したCA証明書やOSの信頼ストア、Cloudflareなどの配信ランタイムについては別途確認が必要です。
対象サービスの確認記録(2026年10月23日):対象サービスの正式版ではNode.js 22.23.4を指定し、本番向けプログラムの作成ログでも同版を確認しています。Cloud Appsのnode_versionは22のままで、設定のdry-runは「Sentry integration is enabled but has no active connection」で停止しました。Wranglerも未認証のため、本番Workersの実測は行えていません。
独自CA設定の確認範囲:mainのソース・設定ファイルとCloud Appsに登録された環境変数名を確認しました。NODE_EXTRA_CA_CERTS、NODE_TLS_REJECT_UNAUTHORIZED、SSL_CERT_FILE等の指定、rejectUnauthorizedによる検証無効化、cots_on_external_fetchは見つかりませんでした。Cloudflareアカウント側のCustom Origin Trust Store等は未確認です。
端末の検証条件:macOSのcurl 8.7.1は修正前、dv-g3b-noctの試験先へHTTP 200で接続しました。Homebrew ca-certificates 2026-10-20の一覧をユーザーのcurl設定とGit設定に指定した後、公開試験先4件(dv-g3b、dv-g3b-aaa、各No CT版)をcurlが証明書エラー60で拒否しました。GitもNo CT試験先を証明書エラーで拒否し、対象のGitHubリポジトリ取得は成功しました。Node.js 24.22.1は4件ともCERT_REVOKED、Python 3.15.0は更新済みCA一覧で4件とも証明書エラーとなり、通常の案内サイトへの接続は成功しました。4件の確認を全14試験先や全端末の確認済みとは扱っていません。
一部サービスの未反映の修正:修正案では、rustls-webpkiを0.103.16、webpki-roots/webpki-root-certsを1.0.10へ更新する変更を用意しています。PRのCIと試験用配備のチェックは成功していますが、確認時点で未マージです。
情報源:問題の概要・対応版一覧 / Mozillaのインシデント記録 / Node.js公式セキュリティ告知
関連レポート:Node.jsの脆弱性に関する調査と対応状況