CRITICAL✓ PATCH🇬🇧 English

CVE-2020-29510

Błąd przetwarzania dyrektyw XML w pakiecie encoding/xml języka Go

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

Pakiet encoding/xml w Go 1.15 i wcześniejszych wersjach niepoprawnie zachowuje semantykę dyrektyw XML podczas tokenizacji w obie strony (round-trip). Może to pozwolić atakującemu na dostarczenie spreparowanych danych wejściowych, które są interpretowane w sprzeczny sposób na różnych etapach przetwarzania w aplikacjach wykorzystujących podatny pakiet.

Pokaż oryginał (EN)

The encoding/xml package in Go versions 1.15 and earlier does not correctly preserve the semantics of directives 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łędnej obsługi dyrektyw XML (ang. directives) podczas tokenizacji round-trip w pakiecie encoding/xml. Gdy dane XML są przetwarzane, a następnie serializowane i ponownie parsowane, semantyka dyrektyw nie jest poprawnie zachowywana. Atakujący może wykorzystać tę rozbieżność, dostarczając spreparowany dokument XML, który na różnych etapach przetwarzania (np. walidacji i wykonania) jest interpretowany odmiennie — technika znana jako differential processing lub parser confusion.

Skutki

Atakujący zdalnie, bez uwierzytelnienia, może spowodować, że aplikacje downstream przetworzą złośliwy dokument XML w sposób niezgodny z zamierzeniem, co może prowadzić do naruszenia poufności, integralności i dostępności danych (np. poprzez ominięcie walidacji, wstrzyknięcie nieoczekiwanych treści lub wywołanie nieautoryzowanych operacji).

Mitygacja

Należy zaktualizować Go do wersji wyższej niż 1.15, w której problem został naprawiony. Użytkownicy produktów Netapp Trident powinni zastosować patche dostępne u producenta zgodnie z advisory ntap-20210129-0006. Dodatkowo zaleca się weryfikację aplikacji przetwarzających XML pod kątem użycia biblioteki xml-roundtrip-validator projektu Mattermost jako dodatkowego mechanizmu ochronnego.

Kogo dotyczy

Go (Golang) w wersjach 1.15 i wcześniejszych (pakiet encoding/xml); Netapp Trident — szczegóły wersji wskazane w referencjach producenta.

Uwagi

Podatność została opisana szczegółowo w advisory projektu Mattermost (xml-roundtrip-validator), który opublikował również narzędzie pomocnicze do weryfikacji poprawności przetwarzania XML w celu mitygacji tego i podobnych problemów.

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.15
  • 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