drošība · 4 min · 11.07.2026

CVE-2026-55952: Erlang/OTP TLS 1.3 apstājas pēc vienas paketes

Erlang/OTP ssl bibliotēkā 2. jūlijā publicēta ievainojamība: viens deformēts TLS 1.3 ClientHello pieprasījums avarē sesijas biļešu apstrādātāja procesu un padara TLS 1.3 nelietojamu attiecīgajā klausītājā līdz restartam. Ietekmētās OTP versijas — no 22.2 līdz 29.0.2 ieskaitot. CVE numurs: CVE-2026-55952.

Ko dara sesijas biļetes un kāpēc tās avarē

TLS 1.3 sesijas biļetes ļauj klientam atkārtoti pieslēgties serverim bez pilna rokasspiediena — klients uzrāda biļeti, serveris to atpazīst, savienojums nodibinās ātrāk. Šis mehānisms palīdz augstu slodžu scenārijos: MQTT brokeriem ar tūkstošiem klientu, REST API aiz slodzes balansētāja, datu bāzu savienojumu apvienojumiem.

Kļūda atrodas funkcijā tls_handshake_1_3:handle_pre_shared_key/3. TLS 1.3 pre-shared key paplašinājumā ir divi saraksti — PSK identitātes un atbilstošās binder vērtības. RFC 8446 prasība: abu sarakstu garumiem jāsakrīt, katrai identitātei — viens binder. Erlang/OTP šo pārbaudi neveic. Ja uzbrucējs nosūta ClientHello ar nesakrītošiem sarakstu garumiem, OTP konstruē OfferedPreSharedKeys ierakstu ar neatbilstošiem sarakstiem un padod to tls_server_session_ticket:use/4, kas avarē.

Avarijas rezultāts: sesijas biļešu apstrādātāja process apstājas. Turpmākie TLS 1.3 savienojumi uz visu klausītāju nedarbojas — viss ports apstājas, arī citi klienti. TLS 1.2 savienojumi turpina darboties normāli.

Kuras sistēmas apdraudētas

Erlang/OTP ir pamats vairākiem plaši izplatītiem infrastruktūras produktiem. RabbitMQ — visplašāk izmantotais atklātā pirmkoda ziņojumu brokeris — ir rakstīts Erlang un savienojumu drošībai izmanto OTP ssl bibliotēku. ejabberd XMPP serveris balstās uz to pašu pamatni, tāpat CouchDB datu bāze. Telekomunikāciju sistēmas, kuru darbam Erlang ir veidots, arī potenciāli skartas.

Ievainojamās versijas: OTP 22.2 līdz 29.0.2 ieskaitot; 28.x atzars pirms 28.5.0.3; 27.x atzars pirms 27.3.4.14. ssl bibliotēkas versijas 9.5 līdz 11.7.2 ieskaitot ir skartas.

Uzbrukumam nepieciešams, lai serverim būtu ieslēgtas sesijas biļetes — tā ir TLS 1.3 standarta funkcionalitāte, ko izmanto lielākā daļa modernās servera konfigurācijas ar OTP. Uzbrucējs var mērķēt jebkuru publiski pieejamu portu, kas runā TLS 1.3.

Labojums un pagaidu risinājums

Erlang/OTP publicējis labojumus trīs stabilitātes zaros: 29.0.3, 28.5.0.3 un 27.3.4.14. ssl bibliotēkas versija 11.7.3 satur labojumu. Jaunināšana neprasa konfigurācijas izmaiņas.

Ja tūlītēja jaunināšana nav iespējama, sesijas biļetes var atslēgt servera ssl parametros:

{session_tickets, disabled}

Šī opcija novērš avarēšanu, bet atspējo TLS 1.3 savienojumu atsākšanas optimizāciju — katrs pieslēgums veic pilnu rokasspiedienu. RabbitMQ gadījumā konfigurācija atrodas advanced.config faila ssl sekcijā.

Klasifikācija un uzbrukuma īpašības

NVD klasificē kļūdu kā CWE-1284 — nepareiza ievades daudzuma validācija. Garuma pārbaude starp identitāšu un binder sarakstiem ir eksplicīta prasība RFC 8446 4.2.11. nodaļā. Garuma pārbaude ir skaidri formulēta prasība, nevis noslēpts specifikācijas smalkums.

Uzbrucējam nav nepieciešama autentifikācija. Pietiek ar vienu paketi. Tā kā sesijas biļešu apstrādātāja process avarē bez izņēmuma uztveršanas, šī pakete apstādina TLS 1.3 uz visu klausītāju uz nenoteiktu laiku — kamēr administrators ssl aplikāciju nerestartē. Publiskajās draudu datubāzēs aktīvas izmantošanas gadījumi šobrīd nav fiksēti. Uzbrukuma vienkāršums — viena pakete, nulles autentifikācija — padara to par augstas prioritātes labojumu.

“An unauthenticated remote attacker can send a single crafted ClientHello to a TLS 1.3 server with session tickets enabled and permanently disrupt session ticket handling on that listener.” — CVE-2026-55952 apraksts

Ievainojamība publicēta 2. jūlijā. Erlang ekosistēmas lietotājiem — RabbitMQ administrātoriem, ejabberd operatoriem — ieteicams pārbaudīt OTP versiju ar erl -noshell -eval 'io:format("~s~n",[erlang:system_info(otp_release)]),halt()' un salīdzināt ar ielāpotajām versijām.

Avoti

komentārisaruna

Komentāri

Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.

Pievieno komentāru

Tavs e-pasts netiks publicēts. Obligātie lauki atzīmēti.

vēl no drošībasaistītie