重大なAD CSドメイン乗っ取りの脆弱性(CVE-2026-54121)、PoCエクスプロイトが公開

Active Directory Certificate Services(AD CS)に存在する重大な権限昇格の脆弱性CVE-2026-54121(通称「Certighost」)を発見・報告したセキュリティ研究者たちが、この脆弱性に関する概念実証(PoC)エクスプロイトと技術的詳細を公開しました。

脆弱性の概要

AD CSは、組織が独自のPKI(公開鍵基盤)を運用できるMicrosoft Windows Serverの役割です。認証局(CA)として機能し、ネットワーク全体で認証・暗号化・署名に使用されるデジタル証明書の発行・管理を行います。

CVE-2026-54121は、CVSSスコア8.8の重大な認可不備の脆弱性です。

Microsoftは「認証済みの攻撃者がマシンアカウントに関連する属性を操作し、Active Directory Certificate Servicesから証明書を取得することで、[Kerberosの初期認証用公開鍵暗号(PKINIT)]を介してそのマシンとして認証できてしまう可能性がある」と説明しています

「ドメインコントローラーのアカウントを標的にできる場合、攻撃者はドメインコントローラーとして認証を行い、Active Directoryの特権操作を実行できるようになります」としています。

研究者のAniq Fakhrul氏とMuhammad Ali氏は、2026年5月にこの脆弱性をMicrosoftに報告し、同社は2026年7月14日に修正プログラムをリリースしました。

当時Microsoftは、CVE-2026-54121について悪用の可能性を「低い」と評価していましたが、PoCが公開された今、この評価を見直す可能性があります。

エクスプロイトの仕組み

CVE-2026-54121悪用するには、攻撃者はネットワークアクセス権とドメインアカウントを保有している必要があります。

このエクスプロイトは、証明書の登録処理中にAD CS認証局(CA)内部で発生する特定のフォールバック動作を悪用するものです。

Image

Certighostのエクスプロイト手法(提供:Muhammad Ali氏)

CAは登録要求を処理する際、ディレクトリオブジェクトを参照して要求元の身元を解決する必要があります。ドメインコントローラーをまたぐ登録の一部シナリオでは、CAが別のホストに接続して情報を取得する2回目のディレクトリ参照(「チェイス」)を行うことがあります。

このチェイス動作は、証明書要求内で要求元が指定する2つの属性によって操作可能です。CAが接続すべきホストを指定するcdc(Client DC)と、CAが検索すべきプリンシパルを指定するrmd(Remote Domain)です。

この2つが両方存在する場合、CAはcdcで指定された(攻撃者が制御する)ホストに対してSMBおよびLDAP接続を開き、rmdで指定されたプリンシパルを検索した上で、そこから受け取った身元情報をもとに証明書を作成してしまいます。

この不正なエンドポイントがそもそもCAの認証チェックを通過してしまう理由は、デフォルトのms-DS-MachineAccountQuota設定によって作成されたマシンアカウント自体が、正当なドメインプリンシパルとして扱われるためです。これにより、なりすまし対象のドメインコントローラーでなくても、攻撃者が制御するチェイス先ホストがCAの求めるチェックを満たせてしまいます。

最終的に攻撃者は、標的とするドメインコントローラーとして認証できるCA署名済み証明書を手に入れ、これを(PKINIT経由で)利用することで、そのDCアカウントのKerberos資格情報を取得できます。

ドメインコントローラーのアカウントはディレクトリの複製権限を持っているため、攻撃者はその後DCSync操作を実行し、ドメイン内のKerberosを支える基幹鍵であるkrbtgtアカウントのシークレットを抜き出すことが可能です。こうして、当初は一般的なドメインユーザーアカウントに過ぎなかったものが、ドメイン全体の完全な侵害へとつながります。

パッチ適用または回避策

Microsoftが2026年7月にリリースした各種Windows 10およびWindows Server向けの更新プログラムでは、参照処理を進める前に「チェイス」先を検証することで、この抜け穴を塞いでいます。

管理者は、まだ実施していない場合、影響を受けるAD CSホストを可及的速やかにアップグレードすべきです。

研究者らは「7月の更新プログラムをすぐに適用できない場合でも、cdcによるチェイスはあくまでオプションのフォールバック機能であり、すべての要求で実行されるコードではないため、ポリシーフラグによって脆弱なコードパスを完全に無効化できる」と付け加えています

これは、certutilを使ってレジストリを変更し(certutil -setreg policy\EditFlags -EDITF_ENABLECHASECLIENTDC)、その後CAサービスを再起動する(Restart-Service CertSvc -Force)ことで実施できます。

現時点では、この脆弱性が実際の攻撃で悪用されたという報告は確認されていません。

翻訳元: https://www.helpnetsecurity.com/2026/07/27/certighost-cve-2026-54121-poc-exploit-released/

ソース: helpnetsecurity.com