CRITICAL✓ PATCH🇬🇧 English

CVE-2020-29511

Go encoding/xml: błąd zachowania prefiksów przestrzeni nazw XML

CVSS 9.8v3.1pub. 2020-12-14upd. 2024-11-21

Pakiet encoding/xml w języku Go nieprawidłowo zachowuje semantykę prefiksów przestrzeni nazw elementów XML podczas operacji tokenizacji (round-trip). Umożliwia to atakującemu spreparowanie danych wejściowych, które zachowują się sprzecznie na różnych etapach przetwarzania w aplikacjach korzystających z tej biblioteki.

Pokaż oryginał (EN)

The encoding/xml package in Go (all versions) does not correctly preserve the semantics of element namespace prefixes during tokenization round-trips, which allows an attacker to craft inputs that behave in conflicting ways during different stages of processing in affected downstream applications.

🤖 Analiza AI
Jak działa

Podatność wynika z błędu w obsłudze prefiksów przestrzeni nazw XML podczas tokenizacji i ponownej serializacji (round-trip) w pakiecie encoding/xml. Atakujący może przygotować specjalnie skonstruowany dokument XML, który po kolejnych etapach parsowania i przetwarzania jest interpretowany inaczej niż pierwotnie. Różnica w interpretacji między etapami przetwarzania (np. walidacją a wykonaniem) może prowadzić do obejścia mechanizmów bezpieczeństwa w aplikacjach downstream korzystających z tej biblioteki.

Skutki

Atakujący może doprowadzić do niespójnego przetwarzania danych XML w aplikacjach opartych na Go, co może skutkować obejściem kontroli bezpieczeństwa, nieautoryzowanym dostępem do danych lub naruszeniem integralności przetwarzanych informacji (potencjalne skutki: naruszenie poufności, integralności i dostępności zgodnie z wektorem CVSS).

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami. Dla aplikacji korzystających z pakietu encoding/xml zaleca się weryfikację danych XML przy użyciu dodatkowych mechanizmów walidacji, np. biblioteki xml-roundtrip-validator projektu Mattermost (opisanej w referencjach).

Kogo dotyczy

Wszystkie wersje języka Go (Golang) — pakiet encoding/xml; produkty pochodne: Netapp Trident (wersje wskazane w referencjach producenta).

Uwagi

Podatność dotyczy całej klasy aplikacji przetwarzających XML w Go — problem leży w bibliotece standardowej, więc podatne mogą być wszystkie aplikacje korzystające z encoding/xml bez dodatkowej walidacji. Szczegóły techniczne i narzędzie pomocnicze (xml-roundtrip-validator) opublikowało Mattermost.

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.17
  • Netapp Trident

    APP
    Netapp
    wszystkie wersje
🟢
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