CRITICAL✓ PATCH🇬🇧 English

CVE-2023-39320

Nieautoryzowane wykonanie kodu przez dyrektywę toolchain w Go 1.21

CVSS 9.8v3.1pub. 2023-09-08upd. 2024-11-21

Dyrektywa 'toolchain' w pliku go.mod, wprowadzona w Go 1.21, umożliwia wykonanie dowolnych skryptów i plików binarnych względem katalogu głównego modułu podczas uruchamiania polecenia 'go'. Podatność jest krytyczna, ponieważ może być wyzwolona przez pobranie złośliwego modułu z proxy lub bezpośrednio z systemu kontroli wersji.

Pokaż oryginał (EN)

The go.mod toolchain directive, introduced in Go 1.21, can be leveraged to execute scripts and binaries relative to the root of the module when the "go" command was executed within the module. This applies to modules downloaded using the "go" command from the module proxy, as well as modules downloaded directly using VCS software.

🤖 Analiza AI
Jak działa

Atakujący może umieścić w pliku go.mod złośliwą dyrektywę 'toolchain', która przy wykonaniu polecenia 'go' powoduje uruchomienie wskazanych skryptów lub plików binarnych względem katalogu głównego modułu. Podatność dotyczy zarówno modułów pobieranych za pośrednictwem module proxy, jak i modułów pobieranych bezpośrednio przy użyciu oprogramowania VCS (np. git). Nie jest wymagane żadne uwierzytelnienie ani interakcja użytkownika poza standardowym pobraniem modułu.

Skutki

Atakujący może doprowadzić do wykonania dowolnego kodu (RCE) na maszynie ofiary w kontekście użytkownika uruchamiającego polecenie 'go', co może skutkować pełnym przejęciem systemu, ujawnieniem danych lub ich modyfikacją.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami. Szczegóły poprawki dostępne są pod adresem https://go.dev/cl/526158 oraz https://go.dev/issue/62198

Kogo dotyczy

Golang Go w wersji 1.21 oraz kolejnych wersjach wprowadzających obsługę dyrektywy 'toolchain' w pliku go.mod

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.0 – 1.21.1 (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-2024-24790CRITICAL9.8PL ✓ten sam produkt

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

CVE-2023-29405CRITICAL9.8PL ✓ten sam produkt

RCE w Go — przemycanie flag linkera przez cgo LDFLAGS