
2026/10/28 3:33
GoAhead に見られる3つのTLSのバグ
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
単一の変更プログラムパッチ、GoAhead バージョン 6.1.1 の導入が緊急に必要です。これにより、ボーイング、シーメンス、Palo Alto Networks、コムキャスト、D-Link、HP、キャノン、ハニーウェル、GE、Oracle、ロックウェル、Digi、そしてロッキード・マーティンといったメーカーから供給されている数百万台の IoT ファイアウォール OT 軍事およびエンタープライズデバイスの、3 つの深刻な脆弱性を是正します。これらの欠陥により、攻撃者は次の行為を行うことができます:OpenSSL CRL チェックが無効化されておりながらファイル読み込みが実行されることで証明書の取り消しリストをバイパスする、LibreSSL のレガシー検証器で VERIFY_ISSUER=0 が設定されていることで無効または長すぎる証明書チェーンを受け入れる、mbed TLS のバッファ長さのタイポにより DH 変数を截断する結果として暗号化された TLS 1.2 DHE_RSA セッションを復号化する、といった行為です。OpenSSL ベンディングは X509_V_FLAG_CRL_CHECK フラグを設定せず、2024 年のリファクタリングにもかかわらず 2018 年の mbed TLS のタイポが存続しています。LibreSSL ビルドはこの問題を受け継ぎ、アップグレードして 4.x を採用するか緩和措置を講じない限り解決されません。GOAHEAD-SA-2026-0006 (CVE-2026-115881, CVSS 9.1)、GOAHEAD-SA-2026-0004 (CVSS 7.4)、そして GOAHEAD-SA-2026-0005 (CVSS 5.9) の技術的識別子が深刻度を最大 9.1 を確認しており、組織はアップグレードまでの間は mbed TLS に対して DHE サイットを無効化し、LibreSSL に対して検証者検証 (VERIFY_ISSUER=1) を強制するか、OpenSSL ベンディングに切り替えることでリスクを緩和する必要があります。JA4Scan-TLS 指紋と PoC コードは、https://github.com/FoxIO-LLC/blog_poc/tree/main/chooseyourbackend で入手可能であり、同サイトにて特定とテストを行うことができます。
本文
【緊急】数億台の IoT 機器に展開される GoAhead ファイアウォール、TLS 統合関連の重大な脆弱性
TLDR:
GoAhead はパロアルトネット、コンカスト、ボーイングなど大手企業や軍事用機器を含む、数億台の IoT ファイアウォールおよび OT(運用技術)デバイスに展開されています。同製品の TLS 統合に関連する 3 つの独立したバグが特定されました。これにより、取り消された証明書を受け付けたり、暗号化セッションが復元可能になったりする重大なセキュリティリスクが発生しています。
🔍 脆弱性サマリー
| TLS ライブラリ | 深刻度 | CVSS 得点 | 問題 ID | 概要 |
|---|---|---|---|---|
| OpenSSL 互換バックエンド | Critical (重要) | 9.1 | GOAHEAD-SA-2026-0006 / CVE-2026-115881 | CRL(取り消しリスト)は読み込まれているが、チェックが実施されないため、取り消されたクライアント証明書が静かに受理される。 |
| LibreSSL レガシー認証検証器 | High (高) | 7.4 | GOAHEAD-SA-2026-0004 | 発行元確認が無効化されている際、過剰な深さを持つ証明書チェーンが受け付けられ、チェーン深さの制限回避になる。 |
| Mbed TLS | Medium (中) | 5.9 | GOAHEAD-SA-2026-0005 / CVE-2026-115884 | バッファ長のタイプミスにより、DH 変数の長さが 1 バイトに縮小され、TLS 1.2 の DHE_RSA セッションが復号化可能となる。 |
🛡️ 影響範囲と緩和措置
以下の表は、各 TLS ビルド/バックエンドにおける影響を受けるバージョンと修正方法を示しています。重要: 発行元確認が有効でも(OpenSSL 系)、取り消された証明書は引き続き受理される可能性があります。
| TLS ビルド / バックエンド | 影響を受けるバージョン | 修正または緩和策 |
|---|---|---|
| OpenSSL 互換バックエンド | かつ (mTLS が有効化され、CRL が設定済み) | バージョン 6.1.1 またはそれ以降へのアップグレード必須。 |
| Mbed TLS バックエンド | かつ (破損した DH パラメータを受け付けるクライアントとネゴシエートされる) | バージョン 6.1.1 またはそれ以降へのアップグレード。 または: 有限体上の DHE スイートを無効化するか、OpenSSL バックエンドへ切り替える。 |
| LibreSSL レガシー認証検証器 | または (構成: , ) | を有効化し、信頼された CA ブUNDLE を指定するか、OpenSSL / LibreSSL 4.x にアップグレードする。 |
📜 背景と詳細技術解説
GoAhead はルーター、スイッチ、産業用コントローラーなどの管理に使用される埋め込み Web サーバーです。OpenSSL(デフォルト)と Mbed TLS をサポートします。以下は主要な発見事項の詳細です。
1. OpenSSL 互換ビルド: CRL チェックの不備
GoAhead の OpenSSL バックエンドは、CRL を読み込みますが、取り消しのチェックを実行していません。
- 根本原因:
は CRL をロードしますが、チェックを有効にするsslOpen()
フラグが設定されないままです。X509_V_FLAG_CRL_CHECK - 影響: 以前は信頼されていたが取り消されたアイデンティティへのアクセス権限が維持され、mTLS ハンドシェイクが完了してしまいます(CVSS 9.1)。
- 修正: バージョン 6.1.1 で CRL 読み込み後にチェックを実行するように修正。
2. Mbed TLS ビルド: DH パラメータのタイプミス
GoAhead の mbed TLS バックエンドでは、DH グループの長さを正しく設定しておらず、共有シークレットが大幅に縮小されています。
- 根本原因:
への渡すバッファ長が誤り(1 バイト読み取り)、本来必要な 256 バイトが破棄されます。mbedtls_ssl_conf_dh_param_bin() - 影響: DH パラメータ値が「255」のみになり、ブルースフォース攻撃で候補がわずか 8 つに絞られます。これにより、観測者は暗号化セッションを復元できます(CVSS 5.9)。
- 条件: クライアント側が破損パラメータを受け入れる場合のみ影響(TLS 1.2 DHE_RSA)。ECDHE や TLS 1.3 は安全。
- 修正: バージョン 6.1.1 でタイプミスを修正。
3. LibreSSL ビルド: チェーン深さ制限の回避
攻撃者は制限を超えた長さの証明書チェーンを提示しても、ハンドシェイクを完了させることができます。
- 根本原因: レガシー X.509 検証器において、チェーン構築ループでエラー処理が不適切(
コメントあり)。エラーコードFIXME
(発行元取得不能)が返され、20
(チェーン深さ超過)の代わりに許容されます。22 - 影響: 攻撃者管理下の CA に基づく17 チートメントのチェーンもハンドシェイク完了し、HTTP 200 が返ります(CVSS 7.4)。
- 修正: LibreSSL 4.x へのアップグレードによりレガシー検証器が削除され、問題解決。
🎯 検出方法(JA4Scan-TLS フィンガープリント)
貴社の艦隊内の公開サーバーで影響を受けるものを発見するには、以下の JA4Scan-TLS フィンガープリントを検出してください(GoAhead 6.1.x 向け)。
| サーバービルド | JA4Scan-TLS フィンガープリント |
|---|---|
| OpenSSL 3.6.2 (影響あり) | |
| LibreSSL 3.3.6 (深さバイパスあり) | |
| LibreSSL 4.3.1 (深さバイパスなし) | |
| mbedTLS 3.6.6 (影響あり) | |
詳細は FoxIO 公式ブログ を参照してください。
🧪 POC と再現手順
脆弱性の確認に使用される PoC コードは以下のリポジトリで入手可能です。
https://github.com/FoxIO-LLC/blog_poc/tree/main/chooseyourbackend
⏱️ タイムライン
| 日付 | イベント |
|---|---|
| 2026/4/22 | LibreSSL への報告開始 |
| 2026/4/27 | MbedTLS への報告開始 |
| 2026/4/30 | OpenSSL への報告開始 |
| 2026/8/2 | GoAhead 6.1.1 リリース(修正対応完了) |
| 2026/10/12 | アドバタイズメントの公表 |
| 2026/10/26 | ブログ記事の公開 |
📚 参照情報
- CVE-2026-115881 / GOAHEAD-SA-2026-0006: OpenSSL CRL チェック無効化
- CVE-2026-115884 / GOAHEAD-SA-2026-0005: MbedTLS DH パラメータ短縮
- GOAHEAD-SA-2026-0004: LibreSSL チェーン深さ回避
- 関連ドキュメント: GoAhead SSL 文書、OpenSSL 検証フラグ (
)、RFC 3526 (MODP Diffie-Hellman)X509_STORE_set_flags