CVE-2026-71255
WysokieCVSS 8.6Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 12 - wyżej niż 12% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Zdalny serwer Modbus może spowodować zapis poza zakresem w kliencie, co może prowadzić do awarii lub potencjalnego wykonania kodu w systemie klienta.
Rekomendacja
Zaktualizuj bibliotekę nanoMODBUS do wersji, która poprawnie waliduje object_length względem rozmiaru bufora, lub zastosuj obejście polegające na ręcznym sprawdzaniu długości odpowiedzi.
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-71254Krytyczne
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.
- 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 client-side recv_read_device_identification_res function (FC 0x2B/MEI 0x0E, Read Device Identification) in nanomodbus.c. The server-supplied object_length field (0-246) is validated only against the remaining PDU size (res_size_left) and is never validated against the caller-supplied buffers_length parameter.

