Kompilator języka Go nieprawidłowo weryfikował przepełnienie i niedomiar arytmetyki na zmiennych indukcyjnych w pętlach, co może skutkować uszkodzeniem pamięci w czasie wykonania programu. Podatność ma charakter krytyczny, ponieważ może być wykorzystana bez uwierzytelnienia i bez interakcji użytkownika.
▸ Pokaż oryginał (EN)
Arithmetic over induction variables in loops were not correctly checked for underflow or overflow. As a result, the compiler would allow for invalid indexing to occur at runtime, potentially leading to memory corruption.
W trakcie kompilacji kodu Go, operacje arytmetyczne wykonywane na zmiennych indukcyjnych (sterujących iteracją pętli) nie były poprawnie sprawdzane pod kątem przepełnienia (overflow) i niedomiaru (underflow). W konsekwencji wygenerowany przez kompilator kod maszynowy dopuszczał nieprawidłowe indeksowanie pamięci w czasie wykonania. Prowadziło to do dostępu do obszarów pamięci poza dozwolonymi granicami, co stanowi klasyczną formę memory corruption.
Atakujący może doprowadzić do uszkodzenia pamięci procesu, co w zależności od kontekstu aplikacji może umożliwić wykonanie dowolnego kodu (RCE), ujawnienie poufnych danych lub destabilizację działania systemu.
Należy zaktualizować kompilator Golang Go do wersji zawierającej poprawkę opisaną w change liście go.dev/cl/763765 oraz ponownie skompilować wszystkie aplikacje Go przy użyciu poprawionego kompilatora. Szczegółowe informacje o wersjach patcha dostępne są w referencjach producenta.
Aplikacje skompilowane przy użyciu kompilatora Golang Go — konkretne wersje wskazane w referencjach producenta (go.dev/issue/78333 oraz pkg.go.dev/vuln/GO-2026-4868)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HGolang Go
APPGolang< 1.25.91.26.0 – 1.26.2 (bez)
Powiązane podatności
Przewidywalne UUID w Fiber v2 — podatność na generowanie słabych identyfikatorów
Golang crypto/tls: błędna walidacja certyfikatów przy wznawianiu sesji TLS
Błędna klasyfikacja adresów IPv4-mapped IPv6 w bibliotece standardowej Go
Nieautoryzowane wykonanie kodu przez dyrektywę toolchain w Go 1.21
RCE w Go — przemycanie flag linkera przez cgo LDFLAGS