W Das U-Boot do wersji 2019.07 wykryto podatność typu buffer overflow (CWE-787) w funkcji nfs_readlink_reply obsługującej protokół NFS. Nieograniczone kopiowanie pamięci bez walidacji długości umożliwia zdalnemu napastnikowi przejęcie kontroli nad urządzeniem.
▸ Pokaż oryginał (EN)
An issue was discovered in Das U-Boot through 2019.07. There is an unbounded memcpy with unvalidated length at nfs_readlink_reply in the "else" block after calculating the new path length.
W bloku 'else' funkcji nfs_readlink_reply, po obliczeniu nowej długości ścieżki, wykonywana jest operacja memcpy bez sprawdzenia, czy kopiowana ilość danych mieści się w buforze docelowym. Atakujący może dostarczyć spreparowaną odpowiedź serwera NFS zawierającą nadmiernie długą ścieżkę dowiązania symbolicznego, co powoduje zapis poza granicami bufora (out-of-bounds write). Podatność jest dostępna przez sieć bez uwierzytelnienia i bez interakcji użytkownika, co czyni ją szczególnie niebezpieczną w środowiskach booting-over-network.
Atakujący może przeprowadzić atak RCE na urządzenie podczas procesu rozruchu przez sieć, potencjalnie uzyskując pełną kontrolę nad systemem, a także naruszając poufność, integralność i dostępność danych.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Dodatkowe wskazówki dostępne są w biuletynie bezpieczeństwa Siemens (SSA-577017). Tymczasowo zaleca się wyłączenie obsługi NFS w bootloaderze, jeśli nie jest ona niezbędna.
Das U-Boot (Denx U-Boot) we wszystkich wersjach do 2019.07 włącznie, korzystających z funkcji klienta NFS
Podatność została opisana przez badaczy ze Semmle i opublikowana na blogu semmle.com. Siemens wydał dedykowany biuletyn bezpieczeństwa SSA-577017 dotyczący wpływu tej podatności na produkty firmy.
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