CRITICAL✓ PATCH🇬🇧 English

CVE-2020-29509

Nieprawidłowe zachowanie przestrzeni nazw XML w pakiecie encoding/xml języka Go

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

Pakiet encoding/xml w języku Go nie zachowuje poprawnie semantyki prefiksów przestrzeni nazw atrybutów podczas tokenizacji XML. Pozwala to atakującemu na przygotowanie danych wejściowych, które zachowują się w sprzeczny sposób 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 attribute 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 mechanizmie tokenizacji XML (CWE-115 — Misinterpretation of Input): pakiet encoding/xml nie gwarantuje, że semantyka prefiksów przestrzeni nazw atrybutów jest zachowana w tzw. round-tripie — czyli przy kolejnych operacjach serializacji i deserializacji XML. Atakujący może spreparować dokument XML, który jest interpretowany odmiennie przez różne komponenty tej samej aplikacji (np. walidację i faktyczne przetwarzanie danych). Rozbieżność ta może być wykorzystana do ominięcia kontroli bezpieczeństwa lub wstrzyknięcia nieoczekiwanych wartości do dalszych etapów przetwarzania.

Skutki

Atakujący może ominąć mechanizmy walidacji lub autoryzacji w aplikacjach przetwarzających XML, potencjalnie uzyskując nieautoryzowany dostęp do zasobów, możliwość modyfikacji danych lub zakłócenia działania systemu — co odpowiada pełnemu naruszeniu poufności, integralności i dostępności (CVSS C:H/I:H/A:H).

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami. Dla produktów NetApp należy zapoznać się z poradnikiem ntap-20210129-0006. Zaleca się również zastosowanie biblioteki walidacyjnej xml-roundtrip-validator projektu Mattermost jako dodatkowej warstwy ochrony dla aplikacji przetwarzających XML.

Kogo dotyczy

Wszystkie wersje języka Go (pakiet encoding/xml) oraz NetApp Trident — zgodnie z opisem producenta. Podatne są aplikacje downstream korzystające z pakietu encoding/xml do przetwarzania XML.

Uwagi

Podatność dotyczy szerokiej klasy aplikacji (downstream) używających pakietu encoding/xml — rzeczywisty wpływ zależy od sposobu, w jaki dana aplikacja przetwarza i waliduje XML. Projekt Mattermost opublikował dedykowane advisory oraz narzędzie walidacyjne xml-roundtrip-validator.

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