CRITICAL🇬🇧 English

CVE-2026-39821

Błędna walidacja Punycode w pakiecie idna umożliwia privilege escalation

CVSS 9.6v3.1pub. 2026-05-22upd. 2026-07-02

Funkcje ToASCII i ToUnicode w pakiecie idna języka Go nieprawidłowo akceptują etykiety zakodowane w formacie Punycode, które dekodują się do etykiet zawierających wyłącznie znaki ASCII. Błąd ten może prowadzić do privilege escalation w aplikacjach wykorzystujących ten pakiet do kontroli dostępu na podstawie nazw hostów.

Pokaż oryginał (EN)

The ToASCII and ToUnicode functions incorrectly accept Punycode-encoded labels that decode to an ASCII-only label. For example, ToUnicode("xn--example-.com") incorrectly returns the name "example.com" rather than an error. This behavior can lead to privilege escalation in programs using the idna package. For example, a program which performs privilege checks on the ASCII hostname may reject "example.com" but permit "xn--example-.com". If that program subsequently converts the ASCII hostname to Unicode, it will inadvertently permits access to the Unicode name "example.com".

🤖 Analiza AI
Jak działa

Funkcje ToASCII i ToUnicode błędnie przetwarzają nieprawidłowe etykiety Punycode — przykładowo wywołanie ToUnicode("xn--example-.com") zwraca wartość "example.com" zamiast błędu. Aplikacja może odrzucić bezpośrednie żądanie dla "example.com" na etapie weryfikacji uprawnień, lecz przepuścić żądanie dla "xn--example-.com", ponieważ te dwie formy są traktowane jako różne nazwy. Jeśli aplikacja następnie konwertuje zaakceptowaną formę Punycode do Unicode, otrzymuje "example.com" i nieświadomie przyznaje dostęp do zasobu, który miał być chroniony.

Skutki

Atakujący uwierzytelniony z niskimi uprawnieniami może ominąć mechanizmy kontroli dostępu oparte na nazwach hostów i uzyskać nieuprawniony dostęp do zasobów lub funkcji zastrzeżonych dla innych użytkowników bądź administratorów.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami (https://go.dev/cl/767220, https://go.dev/issue/78760, https://groups.google.com/g/golang-announce/c/iI-mYSI0lu8). Zaleca się również przegląd kodu aplikacji pod kątem miejsc, gdzie wyniki funkcji ToASCII i ToUnicode są wykorzystywane w logice kontroli dostępu.

Kogo dotyczy

Aplikacje napisane w języku Go korzystające z pakietu idna do przetwarzania lub walidacji nazw domenowych; szczegółowe informacje o wersjach dostępne w referencjach producenta (pkg.go.dev/vuln/GO-2026-5026).

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N
  • Golang Net

    APP
    Golang
    < 0.55.0
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
LPE
CWE
Referencje

Powiązane podatności

CVE-2018-17848HIGH7.5ten sam produkt

The html package (aka x/net/html) through 2018-09-25 in Go mishandles <math><template><mn><b></template>, lead...

CVE-2018-17847HIGH7.5ten sam produkt

The html package (aka x/net/html) through 2018-09-25 in Go mishandles <svg><template><desc><t><svg></template>...

CVE-2018-17846HIGH7.5ten sam produkt

The html package (aka x/net/html) through 2018-09-25 in Go mishandles <table><math><select><mi><select></table...

CVE-2018-17143HIGH7.5ten sam produkt

The html package (aka x/net/html) through 2018-09-17 in Go mishandles <template><tBody><isindex/action=0>, lea...

CVE-2018-17142HIGH7.5ten sam produkt

The html package (aka x/net/html) through 2018-09-17 in Go mishandles <math><template><mo><template>, leading ...