Erlang/OTP開発元、TLS 1.3クライアントが証明書検証なしで接続完了する欠陥を修正 ― CVE-2026-89422、CVSS 4.0 で9.3
手法
発見者は人間の研究者(Milad Nasr、Luna Tong)としてクレジットされている。アドバイザリ上の所属はAnthropicだが、AIの関与は一次資料で確認できない(AI発見としては扱わない)。Erlang/OTPのsslアプリのTLS 1.3クライアントは、クライアントが提示していないpre_shared_key拡張がServerHelloに含まれると、サーバ証明書を検証しないままハンドシェイクを完了していた。既定の推奨設定(verify_peer、cacerts指定、TLS 1.3)でも、証明書も秘密鍵も持たない相手がssl:connect/4を成功させられ、証明書パス検証・ホスト名検証・CRL・OCSPがすべて素通りになる。TLS 1.2に限定したクライアントは影響を受けない。OTP 22.2以降が対象で、修正版はOTP 29.1.1 / 28.5.0.7 / 27.3.4.18(ssl 11.7.7 / 11.6.0.6 / 11.2.12.13)。TLS 1.3を維持したままの回避策はなく、暫定策はTLS 1.2への限定のみ。
示唆
サーバ認証の欠落は、httpcのHTTPS通信、DB・メッセージング用クライアントライブラリ、TLS分散クライアントなどssl:connectを使うすべてに及ぶ。接続後は攻撃者が全トラフィック鍵を握り、認証情報の読み取りと応答の偽造ができる。被害の有無はssl:peercert/1がno_peercertを返すこと、session_resumptionがtrueになることでしか見分けられず、アプリ側の検知は難しい。既定設定のまま安全だと思い込まず、ランタイムの修正版適用を優先する必要がある事例。
成果・金額
CVE-2026-89422 / CVSS 4.0 = 9.3(CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H、公式GHSAのseverityはcritical、CWE-322) / 影響: OTP 22.2以降(ssl 9.5以降) / 修正: OTP 29.1.1, 28.5.0.7, 27.3.4.18 / CISA KEV収載なし
引用
A pre_shared_key extension in the ServerHello that the client never offered causes the client to complete the handshake without validating the server's certificate.
出典: github.com