W bootloaderze Das U-Boot (do wersji 2019.07) odkryto krytyczną podatność typu buffer overflow (CWE-787) w implementacji klienta NFSv2. Atakujący z dostępem do sieci może bez uwierzytelnienia doprowadzić do przepełnienia bufora i potencjalnie przejąć kontrolę nad urządzeniem.
▸ Pokaż oryginał (EN)
An issue was discovered in Das U-Boot through 2019.07. There is an unbounded memcpy with a failed length check at nfs_read_reply when calling store_block in the NFSv2 case.
Podatność wynika z braku prawidłowej weryfikacji długości danych w funkcji nfs_read_reply podczas wywołania store_block w ścieżce obsługi protokołu NFSv2. Niepoprawna kontrola długości powoduje, że operacja memcpy kopiuje dane poza granice przeznaczonego bufora (unbounded memcpy). Zdalny, nieuwierzytelniony atakujący może spreparować złośliwą odpowiedź serwera NFS, która wyzwoli przepełnienie bufora podczas procesu bootowania.
Wykorzystanie podatności może umożliwić atakującemu wykonanie dowolnego kodu (RCE) na poziomie bootloadera, co w praktyce oznacza pełne przejęcie kontroli nad urządzeniem, naruszenie poufności i integralności danych oraz jego niedostępność.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się aktualizację U-Boot do wersji wydanej po 2019.07. Jeśli aktualizacja nie jest możliwa, należy rozważyć wyłączenie obsługi bootowania przez NFS lub ograniczenie dostępu sieciowego do interfejsów bootowania urządzeń za pomocą firewalla.
Das U-Boot w wersjach do 2019.07 włącznie, korzystający z obsługi bootowania przez sieć z użyciem protokołu NFSv2. Podatność dotyczy również produktów firm trzecich opartych na tej wersji U-Boot (m.in. produkty Siemens — zgodnie z referencją SSA-577017).
Podatność opisana przez badaczy Semmle (blog.semmle.com). Producent Siemens wydał dedykowany biuletyn bezpieczeństwa SSA-577017 dotyczący produktów korzystających z podatnej wersji 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 przez integer underflow przy przetwarzaniu pakietów UDP