Podatność w Netatalk przed wersją 3.2.1 powoduje przepełnienie bufora sterty (heap-based buffer overflow) wynikające z błędu off-by-one w funkcji FPMapName. Luka umożliwia zdalnemu, nieuwierzytelnionemu atakującemu przejęcie kontroli nad systemem, co czyni ją krytyczną.
▸ Pokaż oryginał (EN)
Netatalk before 3.2.1 has an off-by-one error and resultant heap-based buffer overflow because of setting ibuf[len] to '\0' in FPMapName in afp_mapname in etc/afpd/directory.c. 2.4.1 and 3.1.19 are also fixed versions.
Błąd występuje w funkcji afp_mapname w pliku etc/afpd/directory.c, gdzie ustawienie ibuf[len] na znak null ('\0') wykracza o jeden bajt poza właściwy bufor (błąd off-by-one, CWE-193). Prowadzi to do zapisu jednego bajtu poza granicę zaalokowanego obszaru na stercie, co skutkuje heap-based buffer overflow. Ponieważ podatność jest dostępna przez sieć bez uwierzytelnienia i nie wymaga interakcji użytkownika, atakujący może wysłać specjalnie spreparowane żądanie AFP do usługi Netatalk, wywołując podatną ścieżkę kodu.
Atakujący może uzyskać pełną kontrolę nad systemem, w tym dostęp do poufnych danych, możliwość modyfikacji danych oraz doprowadzenie do niedostępności usługi (wysoki wpływ na poufność, integralność i dostępność).
Należy zaktualizować Netatalk do wersji 3.2.1, 2.4.1 lub 3.1.19 (w zależności od używanej gałęzi). Jeśli natychmiastowa aktualizacja nie jest możliwa, zaleca się ograniczenie dostępu do usługi AFP (port 548/TCP) wyłącznie do zaufanych hostów za pomocą firewall lub list ACL.
Netatalk w wersjach wcześniejszych niż 3.2.1; poprawione wersje to również 2.4.1 oraz 3.1.19
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HNetatalk
APPNetatalk3.2.02.0.0 – 2.4.1 (bez)3.0 – 3.1.19 (bez)
Powiązane podatności
Netatalk: heap-based buffer overflow w obsłudze logowania FPLoginExt
Type Confusion w Netatalk afpd — możliwe RCE przez Spotlight RPC
RCE bez uwierzytelnienia w Netatalk — błąd funkcji dsi_writeinit
Netatalk: RCE bez uwierzytelnienia przez błąd parsowania AppleDouble
RCE w Netatalk — stack-based buffer overflow w funkcji setfilparams