CRITICAL✓ PATCH🇬🇧 English

CVE-2024-24790

Błędna klasyfikacja adresów IPv4-mapped IPv6 w bibliotece standardowej Go

CVSS 9.8v3.1pub. 2024-06-05upd. 2024-11-21

Funkcje klasyfikacji adresów IP w języku Go (m.in. IsPrivate, IsLoopback) niepoprawnie obsługiwały adresy IPv6 reprezentujące adresy IPv4 (IPv4-mapped IPv6), zwracając fałszywy wynik tam, gdzie powinny zwrócić prawdziwy. Może to prowadzić do obejścia mechanizmów kontroli dostępu opartych na weryfikacji typu adresu IP.

Pokaż oryginał (EN)

The various Is methods (IsPrivate, IsLoopback, etc) did not work as expected for IPv4-mapped IPv6 addresses, returning false for addresses which would return true in their traditional IPv4 forms.

🤖 Analiza AI
Jak działa

Adresy IPv4-mapped IPv6 to specjalny format pozwalający na reprezentację adresów IPv4 w przestrzeni adresowej IPv6 (np. ::ffff:127.0.0.1 odpowiada 127.0.0.1). Metody Is* w pakiecie net/netip nie traktowały tych adresów tak samo jak ich odpowiedników w czystym IPv4, przez co np. adres ::ffff:192.168.1.1 nie był rozpoznawany jako prywatny. Aplikacje polegające na tych funkcjach do podejmowania decyzji bezpieczeństwa mogły w efekcie błędnie zaklasyfikować adres i zezwolić na dostęp, który powinien być zablokowany.

Skutki

Atakujący może ominąć filtry oparte na klasyfikacji adresów IP (np. blokadę adresów prywatnych, loopback lub link-local), co w zależności od aplikacji może skutkować nieautoryzowanym dostępem do zasobów, eskalacją uprawnień lub ujawnieniem wrażliwych danych.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami (poprawka dostępna w go.dev/cl/590316). Zaleca się aktualizację do najnowszej łatanej wersji Go oraz przegląd kodu aplikacji korzystającego z metod Is* w kontekście adresów IPv4-mapped IPv6.

Kogo dotyczy

Golang Go — wersje wskazane w referencjach producenta (patrz go.dev/issue/67680 oraz lista golang-announce)

Uwagi

Podatność została zgłoszona na liście oss-security w dniu 2024-06-04, dzień przed oficjalną datą publikacji CVE.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Golang Go

    APP
    Golang
    < 1.21.111.22.0 – 1.22.4 (bez)
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
CWE
Referencje

Powiązane podatności

CVE-2026-27143CRITICAL9.8PL ✓ten sam produkt

Błąd arytmetyczny w kompilatorze Golang Go prowadzący do uszkodzenia pamięci

CVE-2025-66630CRITICAL9.2PL ✓ten sam produkt

Przewidywalne UUID w Fiber v2 — podatność na generowanie słabych identyfikatorów

CVE-2025-68121CRITICAL10.0PL ✓ten sam produkt

Golang crypto/tls: błędna walidacja certyfikatów przy wznawianiu sesji TLS

CVE-2023-39320CRITICAL9.8ten sam produkt

The go.mod toolchain directive, introduced in Go 1.21, can be leveraged to execute scripts and binaries relati...

CVE-2023-29405CRITICAL9.8ten sam produkt

The go command may execute arbitrary code at build time when using cgo. This may occur when running "go get" o...