CRITICAL✓ PATCH🇬🇧 English

CVE-2012-2666

Golang Go: tworzenie pliku tymczasowego o przewidywalnej nazwie i jego wykonanie

CVSS 9.8v3.1pub. 2021-07-09upd. 2024-11-21

Podatność w Golang Go 1.0.2 polega na tworzeniu pliku tymczasowego o przewidywalnej nazwie podczas uruchamiania testów na maszynach współdzielonych. Umożliwia to atakującemu podłożenie złośliwego pliku w miejsce tymczasowego i jego wykonanie z uprawnieniami procesu testowego.

Pokaż oryginał (EN)

golang/go in 1.0.2 fixes all.bash on shared machines. dotest() in src/pkg/debug/gosym/pclntab_test.go creates a temporary file with predicable name and executes it as shell script.

🤖 Analiza AI
Jak działa

Funkcja dotest() w pliku src/pkg/debug/gosym/pclntab_test.go tworzy plik tymczasowy o przewidywalnej (możliwej do zgadnięcia) nazwie, a następnie wykonuje go jako skrypt powłoki. Na maszynach współdzielonych lokalny atakujący może wcześniej utworzyć plik o tej samej nazwie lub podstawić w jego miejsce własny złośliwy skrypt. Jest to klasyczny atak typu symlink/TOCTOU, sklasyfikowany jako CWE-377 (Insecure Temporary File).

Skutki

Atakujący z dostępem do systemu współdzielonego może doprowadzić do wykonania dowolnego kodu z uprawnieniami procesu uruchamiającego testy, co może skutkować przejęciem kontroli nad systemem, ujawnieniem danych lub ich modyfikacją.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami — poprawka została wprowadzona w ramach commita dostępnego w repozytorium GitHub projektu golang/go (commit 8ac275bb01588a8c0e6c0fe2de7fd11f08feccdd). Zaleca się aktualizację do nowszej wersji Go zawierającej tę poprawkę.

Kogo dotyczy

Golang Go w wersji 1.0.2 (podatność dotyczy środowisk, w których uruchamiane są testy na maszynach współdzielonych)

Uwagi

Podatność została opublikowana w bazie CVE dopiero w 2021 roku, mimo że dotyczy kodu z wersji 1.0.2 Go i poprawka powstała znacznie wcześniej (widoczne w historii repozytorium). Podatność jest istotna wyłącznie w kontekście uruchamiania testów na maszynach współdzielonych.

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.0.2
🟢
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-39320CRITICAL9.8PL ✓ten sam produkt

Nieautoryzowane wykonanie kodu przez dyrektywę toolchain w Go 1.21