Podatność w funkcji __sflush() biblioteki libc systemu FreeBSD powoduje nieprawidłowe aktualizowanie wewnętrznych struktur FILE przy błędzie wywołania systemowego write(2), co może prowadzić do przepełnienia bufora na stercie (heap buffer overflow). Ze względu na możliwość wykonania dowolnego kodu z uprawnieniami wywołującego programu podatność jest oceniana jako krytyczna.
▸ Pokaż oryginał (EN)
In versions of FreeBSD 12.4-RELEASE prior to 12.4-RELEASE-p7 and FreeBSD 13.2-RELEASE prior to 13.2-RELEASE-p5 the __sflush() stdio function in libc does not correctly update FILE objects' write space members for write-buffered streams when the write(2) system call returns an error. Depending on the nature of an application that calls libc's stdio functions and the presence of errors returned from the write(2) system call (or an overridden stdio write routine) a heap buffer overflow may occur. Such overflows may lead to data corruption or the execution of arbitrary code at the privilege level of the calling program.
Funkcja __sflush() obsługująca buforowane operacje zapisu w standardowej bibliotece libc nie aktualizuje poprawnie pól opisujących dostępne miejsce w buforze zapisu obiektu FILE, gdy wywołanie systemowe write(2) zwróci błąd. Jeśli aplikacja korzysta z funkcji stdio (np. fwrite, fflush) i w trakcie jej działania pojawi się błąd z write(2) — lub z nadpisanej przez aplikację procedury zapisu stdio — wewnętrzny stan bufora może stać się niespójny. Prowadzi to do zapisu poza granice przydzielonego na stercie bufora (heap buffer overflow), ponieważ biblioteka operuje na nieprawidłowych wskaźnikach granicy bufora.
Atakujący lub złośliwe dane wejściowe mogą doprowadzić do uszkodzenia danych w pamięci lub wykonania dowolnego kodu (RCE) z poziomem uprawnień procesu, który wywołał podatną funkcję biblioteczną.
Należy zaktualizować system do FreeBSD 12.4-RELEASE-p7 lub nowszego (dla gałęzi 12.4) albo do FreeBSD 13.2-RELEASE-p5 lub nowszego (dla gałęzi 13.2). Szczegóły dostępne w komunikacie bezpieczeństwa FreeBSD-SA-23:15.stdio pod adresem https://security.freebsd.org/advisories/FreeBSD-SA-23:15.stdio.asc.
FreeBSD 12.4-RELEASE w wersjach wcześniejszych niż 12.4-RELEASE-p7 oraz FreeBSD 13.2-RELEASE w wersjach wcześniejszych niż 13.2-RELEASE-p5.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFreebsd
OSFreebsd12.413.2< 12.413.0 – 13.2 (bez)
Powiązane podatności
The ISO-2022 encoding module used a stack buffer sized to MB_LEN_MAX (6 bytes) for intermediate character outp...
Several encoding modules, including HZ, UTF-7, VIQR, and ZW, did not properly check the size of the caller-sup...
FreeBSD UMTX_SHM_DESTROY: use-after-free umożliwiający RCE lub ucieczkę z sandboxa
RCE w implementacji NFS w OpenBSD i FreeBSD — zdalne wykonanie kodu
FreeBSD: przepełnienie bufora w obsłudze beacon 802.11s prowadzące do RCE