CVE-2026-89422 in OTP
요약
\~에 의해 VulDB • 2026. 09. 22.
Erlang/OTP의 ssl 모듈에서 엔티티 인증 없이 키 교환이 이루어지는 취약점이 존재하여, TLS 1.3 클라이언트 연결에 응답하는 피어가 의도된 서버를 사칭할 수 있습니다. 클라이언트가 제공하지 않은 ServerHello 내의 pre_shared_key 확장이 포함되면, 클라이언트는 서버의 인증서를 검증하지 않고 핸드셰이크를 완료하므로 ssl:connect는 인증서나 개인 키가 없으며 이전 세션이 없는 피어에 대해 {ok, Socket}을 반환합니다.
tls_client_connection_1_3:handle_server_hello/2 함수는 수신된 확장을 tls_gen_connection_1_3:handle_resumption/2로 전달하며, 이 함수는 클라이언트가 PSK를 제공했는지 확인하지 않고 해당 확장 존재 여부만으로 resumption = true를 설정합니다. 한편, tls_handshake_1_3:get_pre_shared_key/4는 모든 0으로 구성된 "PSK 없음" 값으로 폴백되어 일반 비-PSK 스케줄로 핸드셰이크 키를 생성하므로, 공격자의 임시 키만으로도 충분해집니다. resumption 플래그는 maybe_resumption/1을 wait_finished 상태로 직접 라우팅하여 인증서 처리 상태를 건너뛰므로, 인증서 경로 검증, verify_fun, 호스트명 확인, partial_chain, CRL 검사 및 OCSP stapling이 모두 우회됩니다. 기본 클라이언트 구성은 영향을 받지만 TLS 1.2로 제한된 클라이언트는 그렇지 않습니다.
본 이슈는 OTP 27.3.4.18 이전의 OTP 22.2부터, 그리고 OTP 28.5.0.7 및 OTP 29.1.1에 영향을 미치며, 이는 ssl 모듈에서 11.2.12.13 이전 버전, 11.6.0.6 및 11.7.7 버전에 해당합니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.