Podatność w Das U-Boot (do wersji 2019.07) umożliwia wykonanie nieograniczonego zapisu w pamięci podczas przetwarzania pakietów UDP. Ze względu na sieciowy wektor ataku bez wymagania uwierzytelnienia i ocenę CVSS 9.8, stanowi krytyczne zagrożenie dla urządzeń wbudowanych.
▸ Pokaż oryginał (EN)
An issue was discovered in Das U-Boot through 2019.07. There is an unbounded memcpy when parsing a UDP packet due to a net_process_received_packet integer underflow during an nc_input_packet call.
Podczas przetwarzania odebranego pakietu UDP funkcja net_process_received_packet wywołuje nc_input_packet, w której dochodzi do integer underflow (CWE-191) — wartość całkowita schodzi poniżej zera, co prowadzi do błędnego obliczenia rozmiaru bufora. Skutkuje to wywołaniem memcpy z nieograniczoną (lub nieprawidłowo dużą) długością kopiowanych danych, powodując zapis poza granicami bufora (CWE-787, out-of-bounds write). Atakujący może wywołać tę sytuację zdalnie, przesyłając specjalnie spreparowany pakiet UDP do urządzenia uruchomionego z U-Boot.
Atakujący zdalnie i bez uwierzytelnienia może nadpisać dowolne obszary pamięci, co w praktyce może prowadzić do wykonania arbitralnego kodu (RCE), przejęcia pełnej kontroli nad urządzeniem lub jego awarii.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (repozytorium gitlab.com/u-boot/u-boot). Użytkownicy produktów Siemens powinni zapoznać się z biuletynem SSA-577017 dostępnym w portalu CERT Siemens. Jako dodatkowe zabezpieczenie należy rozważyć ograniczenie dostępu sieciowego do interfejsu bootloadera na poziomie infrastruktury sieciowej (firewall, segmentacja sieci).
Das U-Boot we wszystkich wersjach do 2019.07 włącznie. Dotyczy urządzeń wbudowanych (routery, urządzenia IoT, przemysłowe systemy sterowania) korzystających z bootloadera U-Boot z aktywną obsługą sieci UDP.
Podatność opisana przez badaczy z Semmle i udokumentowana na blogu technicznym pod adresem blog.semmle.com/uboot-rce-nfs-vulnerability/. Siemens wydał dedykowany biuletyn bezpieczeństwa SSA-577017 dla swoich produktów opartych na U-Boot.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HDenx U Boot
APPDenx≤ 2019.07
Powiązane podatności
Stack-based buffer overflow w Das U-Boot — komenda 'i2c md'
Buffer overflow w obsłudze NFS w Das U-Boot (CVE-2022-30767)
Double free w U-Boot umożliwia zdalne wykonanie kodu (RCE)
U-Boot: nieograniczone memcpy w nfs_lookup_reply prowadzące do RCE
U-Boot: nieograniczone memcpy w obsłudze NFS (nfs_readlink_reply) — RCE