Wysoki Oczekuje na analizę

CVE-2026-87045

opublikowano:
modyfikacja:
Ocena CVSS
7.5
Wysoki · v3.1
wektor: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

Serwer HTTP/2 w subsys/net/lib/http/http_server_http2.c czyści powiązanie strumienia połączenia na początku każdej ramki. handle_http_frame_header() wykonała klient->prąd_prądowy = NULL bezwarunkowo, ale ramka KONTYNUACJA nie otwiera nowego strumienia, a funkcja enter_http_frame_continuation_state() nigdy nie wiązała go ponownie, więc reszta bloku nagłówka została przetworzona przy nieustawionym kliencie->prąd_prądowy. Następnie dwie ścieżki zapisują wskaźnik NULL. Na żądanie niezarejestrowanego zasobu lub metody, której dopasowany zasób nie obsługuje, odpowiada funkcja send_http2_404() lub send_http2_405(), a obie metody wywołują funkcję send_headers_frame(), która bezwarunkowo ustawia klient->prąd_prądowy->headers_sent = true. POST, PUT lub PATCH do zarejestrowanego zasobu dynamicznego docierają do handle_http2_dynamic_resource(), który w przeciwieństwie do swoich rodzeństwa (handle_http2_static_resource(), dynamic_get_del_opts_req_v2(), dynamic_post_put_req_v2()) nie miał osłony klient->prąd_prądowy == NULL i zapisuje poprzez wskaźnik za pomocą klient->prąd_prąd->prąd_detail = dynamic_detail.

Każdy element równorzędny, który może połączyć się z serwerem, może to wywołać bez uwierzytelniania lub wcześniejszego stanu. Wystarczy pojedyncza bezpański ramka CONTINUATION z ustawionym END_HEADERS, wysłana zaraz po przedmowie klienta i żądająca dowolnej niezarejestrowanej ścieżki, ponieważ nic nie odrzuciło CONTINUATION, której nie otworzyła żadna ramka HEADERS. Prawidłowy podzielony blok nagłówka (ramka HEADERS z wyczyszczonym END_HEADERS, której ładunek kończy się na granicy pola nagłówka, a następnie CONTINUATION z ustawionym END_HEADERS) osiąga ten sam stan. Test wewnątrz drzewa test_http2_post_headers_with_continuation() nie wychwycił tego, ponieważ dzieli środkowe pole bloku nagłówka, co wymaga skrótu handle_incomplete_http_header() utrzymującego powiązanie strumienia.

Rezultatem jest zapis pod ustalonym niskim adresem (małe przesunięcie w strukturze http2_stream_ctx), który powoduje błędy w głównych celach (region pamięci flash/wektorowej na Cortex-M lub pułapka pod wykrywaniem wskaźnika zerowego MPU/MMU), a domyślna procedura obsługi błędów krytycznych zatrzymuje system. Wpływ to nieuwierzytelniona, zdalnie wyzwalana odmowa usługi wobec dowolnego urządzenia, na którym działa serwer HTTP/2: ścieżka 404 nie wymaga rejestracji żadnego konkretnego zasobu, a protokół HTTP/2 jest wbudowany w CONFIG_HTTP_SERVER z akceptowanym czystym tekstem h2c, więc TLS temu nie zapobiega. Ani adres docelowy, ani zapisana wartość nie są kontrolowane przez osobę atakującą, więc nie ma to wpływu na poufność ani integralność. Nie ma to wpływu na aplikacje zbudowane bez CONFIG_HTTP_SERVER.

>_ Słabości (CWE)

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org