CVE-2026-89422 in OTP
Tóm tắt
Bởi VulDB • 22/09/2026
Lỗ hổng Key Exchange without Entity Authentication trong Erlang/OTP ssl cho phép một peer trả lời kết nối TLS 1.3 của client giả mạo máy chủ dự định. Một phần mở rộng pre_shared_key trong ServerHello mà client chưa từng đề xuất khiến client hoàn tất quá trình bắt tay (handshake) mà không xác thực chứng chỉ của server, do đó ssl:connect trả về {ok, Socket} đối với một peer không có chứng chỉ, không có khóa riêng và cũng không có phiên trước đó.
tls_client_connection_1_3:handle_server_hello/2 chuyển phần mở rộng nhận được cho tls_gen_connection_1_3:handle_resumption/2, hàm này đặt resumption = true dựa trên sự hiện diện của nó mà không kiểm tra xem client đã đề xuất PSK hay chưa. Trong khi đó, tls_handshake_1_3:get_pre_shared_key/4 quay lại giá trị "no PSK" toàn số 0 và sử dụng lịch trình khóa thông thường (non-PSK) cho quá trình bắt tay, do đó khóa tạm thời của kẻ tấn công là đủ. Cờ resumption sau đó định tuyến maybe_resumption/1 trực tiếp đến wait_finished, bỏ qua các trạng thái xử lý chứng chỉ, khiến việc xác thực đường dẫn chứng chỉ, verify_fun, kiểm tra hostname, partial_chain, kiểm tra CRL và OCSP stapling đều bị bỏ qua. Cấu hình client mặc định bị ảnh hưởng; các client bị giới hạn ở TLS 1.2 thì không.
Vấn đề này ảnh hưởng đến OTP từ phiên bản OTP 22.2 trở đi trước OTP 27.3.4.18, OTP 28.5.0.7 và OTP 29.1.1, tương ứng với ssl từ phiên bản 9.5 trở đi trước 11.2.12.13, 11.6.0.6 và 11.7.7.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.