CVE-2026-71254
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 23 - wyżej niż 23% wszystkich znanych CVE
Streszczenie
nanoMODBUS do wersji 1.23.0 zawiera zapis poza zakresem w funkcji handle_read_file_record (FC 0x14, Read File Record) w nanomodbus.c. Funkcja sprawdza, czy całkowity rozmiar żądania nie przekracza 245 bajtów i czy record_length każdego pod-żądania wynosi co najwyżej 124, ale nie sprawdza skumulowanego rozmiaru odpowiedzi przed przetworzeniem.
Ocena ryzyka
Atakujący może wysłać specjalnie spreparowane żądanie Modbus, które spowoduje zapis poza zakresem, co może prowadzić do awarii systemu lub zdalnego wykonania kodu.
Rekomendacja
Należy zaktualizować nanoMODBUS do najnowszej wersji. Zaleca się również dodanie walidacji skumulowanego rozmiaru odpowiedzi w kodzie.
Inne podatności w nanoMODBUS
Zobacz wszystkie- CVE-2026-29972Wysokie
W nanoMODBUS w wersji do 1.22.0 występuje przepełnienie bufora na stosie w funkcji recv_read_registers_res() w pliku nanomodbus.c. Atakujący może wysłać złośliwą odpowiedź z serwera Modbus TCP, co prowadzi do przepełnienia bufora i potencjalnego zdalnego wykonania kodu.
- CVE-2026-71256Krytyczne
nanoMODBUS do wersji v1.23.0 zawiera odczyt poza stosem prowadzący do zapisu przez dziki wskaźnik w nmbs_read_device_identification_basic / recv_read_device_identification_res w nanomodbus.c. Stała tablica stosowa order[3] = {0,1,2} mapuje identyfikatory obiektów na indeksy bufora. Pole object_id dostarczane przez serwer (0-255, odczytywane bezpośrednio z sieci) jest używane bez żadnego sprawdzenia granic jako buf_index = order[object_id].
- CVE-2026-71255Wysokie
nanoMODBUS do wersji v1.23.0 zawiera zapis poza zakresem w funkcji recv_read_device_identification_res po stronie klienta Modbus (FC 0x2B/MEI 0x0E, Read Device Identification) w pliku nanomodbus.c. Pole object_length dostarczane przez serwer (0-246) jest walidowane tylko względem pozostałego rozmiaru PDU (res_size_left) i nigdy nie jest walidowane względem parametru buffers_length dostarczonego przez wywołującego.
- CVE-2026-54410Wysokie
Podatność przepełnienia bufora off-by-one w bibliotece nanoMODBUS do wersji 1.23.0 w funkcji recv_msg_header serwera Modbus/TCP. Zdalny nieuwierzytelniony atakujący może zapisać jeden bajt sterowany przez atakującego poza koniec 260-bajtowego bufora odbiorczego, wysyłając spreparowaną ramkę MBAP z polem Length ustawionym na 255.
Oryginalny opis (angielski, źródło NVD)
nanoMODBUS through v1.23.0 contains an out-of-bounds write in the Modbus server-side handle_read_file_record function (FC 0x14, Read File Record) in nanomodbus.c. The function validates that the total request size does not exceed 245 bytes and that each sub-request's record_length is at most 124, but it never validates the CUMULATIVE response size across all sub-requests before processing them.

