Wysoki Oczekuje na analizę

CVE-2026-102713

opublikowano:
modyfikacja:
Ocena CVSS
8.8
Wysoki · v4.0
wektor: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

>_ Opis

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

Serwer TFTP akceptuje datagram DATA o dowolnym rozmiarze. Dyspozytor odrzuca datagramy krótsze niż



cztery bajty (nxd_tftp_server.c:1037) i nic nigdzie nie sprawdza górnej granicy, w szczególności nie



w stosunku do protokołu maksymalnie 4 + NX_TFTP_FILE_TRANSFER_MAX. Z tego wynikają dwie rzeczy



brakujące sprawdzenie, oba osiągalne przed jakimkolwiek uwierzytelnieniem, ponieważ TFTP go nie posiada.



Procedura obsługi przekazuje `nx_packet_length - 4` bezpośrednio do FileX:



```c



/* dodatki/tftp/nxd_tftp_server.c:1863, 1889 */



status = nx_packet_copy(packet_ptr, &temp_ptr,

serwer_ptr -> nx_tftp_server_packet_pool_ptr, NX_WAIT_FOREVER);


...



fx_file_write(&(client_request_ptr -> nx_tftp_client_request_file),

pakiet_ptr -> nx_packet_prepend_ptr + 4,
pakiet_ptr -> nx_długość_pakietu - 4);


```



`nx_packet_length` to długość łańcucha, a nie jednego ciągłego bufora, więc FileX kopiuje poza



koniec pierwszego pakietu:



```



BŁĄD: AddressSanitizer: przepełnienie bufora sterty



ODCZYT rozmiaru 1280 pod gwintem 0x621000001108 T5

#0 __interceptor_memcpy
#1 _fx_utility_memory_copy filex/common/src/fx_utility_memory_copy.c:78


0x621000001108 to 0 bajtów na prawo od regionu 4104-bajtowego



```



Te bajty są zapisywane w pliku przesyłanym przez osobę atakującą i przekazywane są przez żądanie odczytu TFTP



wstecz, więc jest to ujawnienie pamięci z wygodnym kanałem wyszukiwania.



Ten sam datagram klinuje również serwer. `nx_packet_copy` w: 1863 potrzeb



ceil(nx_packet_length /pool_payload) pakiety i pyta o nie za pomocą NX_WAIT_FOREVER, więc gdy



atakujący przekracza rozmiar datagramu przekraczający wielkość puli, wątek serwera zawiesza się i nigdy



powraca. Sonda na żywo po przekroczeniu limitu czasu jednego takiego datagramu z pulą wynoszącą 0 z 12 pakietów i



wątek serwera zawieszony i żaden późniejszy klient nie jest obsługiwany.



Odrzuć `nx_packet_length > 4 + NX_TFTP_FILE_TRANSFER_MAX` w gałęzi DATA przed którymkolwiek wywołaniem,



i użyj ograniczonego oczekiwania zamiast NX_WAIT_FOREVER dla kopii.

>_ 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