Katalog CVE

CVE-2026-12522

WysokieCVSS 8.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.22%

Percentyl 12 - wyżej niż 12% wszystkich znanych CVE

Streszczenie

Sterownik modemu komórkowego HL7800 zawiera podatność przepełnienia bufora stosu w funkcji on_cmd_atcmdinfo_ipaddr() podczas przetwarzania odpowiedzi +CGCONTRDP. Długość pól adresowych (IP, maska, brama, DNS) jest wyznaczana na podstawie pozycji separatorów w danych dostarczonych przez sieć komórkową i nie jest ograniczana do rozmiaru bufora docelowego (64 bajty), co pozwala na zapis poza buforem temp_addr_str.

Ocena ryzyka

Złośliwa lub podszywająca się sieć komórkowa (np. fałszywa stacja bazowa) może zdalnie spowodować awarię urządzenia lub przejęcie kontroli nad przepływem wykonania w kontekście nadzorcy, bez wymaganych uprawnień ani interakcji użytkownika. Może to prowadzić do naruszenia integralności urządzenia i potencjalnego przejęcia kontroli nad modemem.

Rekomendacja

Należy natychmiast zaktualizować sterownik modemu HL7800 do wersji zawierającej poprawkę ograniczającą długość pól przed kopiowaniem. Jeśli poprawka nie jest dostępna, należy ograniczyć zaufanie do sieci komórkowych i rozważyć dodatkowe mechanizmy ochrony stosu (np. stack canaries) w oprogramowaniu układowym.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

The HL7800 cellular modem driver's +CGCONTRDP: response handler on_cmd_atcmdinfo_ipaddr() in drivers/modem/vendor_standalone/hl7800.c parses the PDP-context dynamic parameters (local address, subnet mask, gateway, and DNS servers) that the cellular network assigns to the device. The response is linearized into a 256-byte stack buffer, after which each address field length is computed from comma/. delimiter positions in the network-supplied data and used directly as the length argument to strncpy() into the fixed 64-byte stack buffer temp_addr_str (and the 16-byte iface_ctx.dns_v4_string). Because the field length is derived from attacker-controlled delimiter positions and was not bounded against the destination buffer, a single field can be far larger than 64 bytes. A malicious or impersonated cellular network (for example a rogue base station) can return a crafted +CGCONTRDP response with an overlong address field, causing strncpy() to write past temp_addr_str on the modem worker thread's stack, plus an out-of-bounds NUL write at temp_addr_str[addr_len]. No device-side privileges or user interaction are required: the device itself issues the AT+CGCONTRDP=1 query during normal network attach and parses whatever the network returns. The overflow corrupts adjacent stack memory in supervisor context, yielding at minimum a remotely triggerable crash and potentially control-flow hijacking on targets without stack protection. The fix bounds every field length against its destination buffer (temp_addr_str and dns_v4_string) before each copy, rejecting overlong fields.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS