【活用ガイド】

JVNDB-2026-017841

ERLANGのErlang/OTPにおける複数の脆弱性

概要

Erlang OTPのpublic_key(pubkey_certおよびpublic_keyモジュール)には、不適切な証明書検証の脆弱性があります。この脆弱性により、TLSホスト名検証でsubject CommonNameにフォールバックすることでDNS nameConstraintsをバイパス可能です。2つの欠陥が組み合わさることで、DNS nameConstraintsで制限されている(例:permitted;DNS:allowed.example.com)サブオーディネートCAが、OTP TLSクライアントに範囲外のホスト名(例:victim.example.com)を有効なIDとして受け入れさせるリーフ証明書を発行できてしまいます。まず、lib/public_key/src/pubkey_cert.erl内のpubkey_cert:validate_names/6は、SANのDNSエントリのみをnameConstraintsと照合します。RFC 5280によれば、許可されたDNSサブツリーはDNS型の名前を含む証明書のみを制限します。subjectAltNameを持たないリーフ証明書は、そのsubject CommonNameに関係なく任意のpermitted;DNS:...制約を簡単に満たしてしまいます。次に、lib/public_key/src/public_key.erlのpublic_key:pkix_verify_hostname/3は、subjectAltNameが存在しない場合にsubject CommonNameにフォールバックし、id-at-commonName属性を提示されたIDとして抽出し、参照ホスト名と照合します。厳密なpkix_verify_hostname_match_fun(https)マッチャーでもこのフォールバックは抑制されません。その結果、SANを持たないためDNS制約が発動しないDNS制約付き中間CAの下で、CNのみのリーフ証明書が検証を通過し、ホスト名検証もCNフォールバックによりこれを受け入れてしまいます。このバイパスはverify_peer付きの標準ssl:connect、信頼済みCA、SNI、および正規の厳格なhttpsホスト名マッチャーを使用した場合に到達可能です。この問題はOTP 19.3からOTP 26.2.5.21、27.3.4.12、28.5.0.1、29.0.1のpublic_key 1.4から1.15.1.7、1.17.1.3、1.20.3.1、1.21.1に該当します。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 8.1 (重要) [NVD値]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): 高
  • 完全性への影響(I): 高
  • 可用性への影響(A): なし
影響を受けるシステム


ERLANG
  • Erlang/OTP 19.3 以上 26.2.5.21 未満
  • Erlang/OTP 27.0 以上 27.3.4.12 未満
  • Erlang/OTP 28.0 以上 28.5.0.1 未満
  • Erlang/OTP 29.0 以上 29.0.1 未満

本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。
想定される影響

・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアは停止しません。
対策

ベンダ情報を参照して適切な対策を実施してください。
ベンダ情報

Erlang Ecosystem Foundation GitHub Open Source Vulnerabilities
CWEによる脆弱性タイプ一覧  CWEとは?

  1. 不正な証明書検証(CWE-295) [その他]
  2. ホストの不一致による証明書の不適切な検証(CWE-297) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-42790
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-42790
  2. 関連文書 : public_key: Adhere to RFC 9525  erlang/otp@21abed6  GitHub
  3. 関連文書 : public_key: Adhere to RFC 9525  erlang/otp@fb67c6d  GitHub
  4. 関連文書 : Versions ― Erlang System Documentation v29.0.1
  5. 関連文書 : public_key: Adhere to RFC 9525  erlang/otp@0769050  GitHub
更新履歴

  • [2026年06月04日]
      掲載