Podatność typu buffer overflow w funkcji guci2_get() biblioteki libglutil.so na urządzeniach GL.iNet pozwala nieuwierzytelnionemu atakującemu zdalnie wykonać dowolny kod. Ocena CVSS 9.8 (CRITICAL) wskazuje na krytyczne zagrożenie, wymagające natychmiastowego działania.
▸ Pokaż oryginał (EN)
An issue was discovered on GL.iNet devices before 3.216. The function guci2_get() found in libglutil.so has a buffer overflow when an item is requested from a UCI context, and the value is pasted into a char pointer to a buffer without checking the size of the buffer.
Funkcja guci2_get() pobiera wartość elementu z kontekstu UCI (Unified Configuration Interface) i kopiuje ją bezpośrednio do bufora o stałym rozmiarze (typ char pointer) bez wcześniejszego sprawdzenia długości kopiowanych danych. Brak weryfikacji rozmiaru umożliwia przepisanie obszarów pamięci poza granicami bufora (classic buffer overflow, CWE-120). Atakujący może dostarczyć odpowiednio spreparowaną wartość UCI, co prowadzi do nadpisania stosu lub sterty i potencjalnie do przejęcia kontroli nad przepływem wykonania programu.
Atakujący bez uwierzytelnienia, działając zdalnie przez sieć, może doprowadzić do wykonania dowolnego kodu (RCE) na podatnym urządzeniu, a w konsekwencji do pełnego przejęcia kontroli nad urządzeniem, utraty poufności danych oraz zakłócenia jego dostępności.
Należy zaktualizować oprogramowanie układowe urządzeń GL.iNet do wersji 3.216 lub nowszej. Szczegółowe informacje o dostępnych patchach dostępne są w referencjach producenta oraz w repozytorium GL.iNet CVE-issues na GitHub.
Urządzenia GL.iNet z oprogramowaniem układowym w wersjach wcześniejszych niż 3.216, w tym modele: GL-S20, GL-X3000 oraz GL-MT3000.
Szczegółowy opis techniczny podatności wraz z analizą dowodową został opublikowany przez badacza Justin Applegate pod adresem https://justinapplegate.me/2023/glinet-CVE-2023-31475/. Producent opublikował informacje o podatności w repozytorium GL.iNet CVE-issues (gałąź 3.215/Buffer_Overflow.md).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HGl Inet Gl A1300
HWGl-Inetwszystkie wersjeGl Inet Gl A1300 Firmware
OSGl-Inet< 3.216Gl Inet Gl Ap1300
HWGl-Inetwszystkie wersjeGl Inet Gl Ap1300 Firmware
OSGl-Inet< 3.216Gl Inet Gl Ap1300lte
HWGl-Inetwszystkie wersjeGl Inet Gl Ap1300lte Firmware
OSGl-Inet< 3.216Gl Inet Gl Ar300m
HWGl-Inetwszystkie wersjeGl Inet Gl Ar300m Firmware
OSGl-Inet< 3.216Gl Inet Gl Ar750
HWGl-Inetwszystkie wersjeGl Inet Gl Ar750 Firmware
OSGl-Inet< 3.216Gl Inet Gl Ar750s
HWGl-Inetwszystkie wersjeGl Inet Gl Ar750s Firmware
OSGl-Inet< 3.216Gl Inet Gl Ax1800
HWGl-Inetwszystkie wersjeGl Inet Gl Ax1800 Firmware
OSGl-Inet< 3.216Gl Inet Gl Axt1800
HWGl-Inetwszystkie wersjeGl Inet Gl Axt1800 Firmware
OSGl-Inet< 3.216Gl Inet Gl B1300
HWGl-Inetwszystkie wersjeGl Inet Gl B1300 Firmware
OSGl-Inet< 3.216Gl Inet Gl B2200
HWGl-Inetwszystkie wersjeGl Inet Gl B2200 Firmware
OSGl-Inet< 3.216Gl Inet Gl E750
HWGl-Inetwszystkie wersjeGl Inet Gl E750 Firmware
OSGl-Inet< 3.216Gl Inet Gl Mifi
HWGl-Inetwszystkie wersjeGl Inet Gl Mifi Firmware
OSGl-Inet< 3.216Gl Inet Gl Mt1300
HWGl-Inetwszystkie wersjeGl Inet Gl Mt1300 Firmware
OSGl-Inet< 3.216Gl Inet Gl Mt2500
HWGl-Inetwszystkie wersjeGl Inet Gl Mt2500a
HWGl-Inetwszystkie wersjeGl Inet Gl Mt2500a Firmware
OSGl-Inet< 3.216Gl Inet Gl Mt2500 Firmware
OSGl-Inet< 3.216
Powiązane podatności
GL.iNet — Authentication Bypass w NGINX przez dopasowanie wzorców Lua
GL.iNet: privilege escalation przez interfejs add_user do uprawnień root
GL.iNET GL-AR300M: command injection przez upload pliku konfiguracji OpenVPN
Command injection w routerach GL.iNET GL-AR300M przez nazwę pakietu
RCE w GL.iNet AX1800 przez błędne uprawnienia funkcji uwierzytelniania