Katalog CVE

CVE-2026-19953

ŚrednieCVSS 6.5
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.37%

Percentyl 30 - wyżej niż 30% wszystkich znanych CVE

Streszczenie

Wersje URI przed 5.36 dla Perla kodują nie-NFC nazwy hostów do niestandardowych etykiet punycode z powodu braku normalizacji w nameprep. nameprep zamienia każdą etykietę hosta na małe litery, ale nie wykonuje normalizacji Unicode. IDNA wymaga normalizacji etykiety do Formy C przed zakodowaniem (RFC 5891), więc etykieta, która nie jest już w NFC, jest kodowana do innej etykiety A niż jej znormalizowana forma. Etykieta zbudowana z prekomponowanej sekwencji dewanagari U+0958 U+093E koduje się do xn--72b5c bez normalizacji, ale do xn--11b2fg po normalizacji NFC, a xn--72b5c nie odwzorowuje się z powrotem na oryginalną etykietę. Każdy wywołujący, który czyta host() z URI zbudowanego z niezaufanych danych i używa go do decyzji bezpieczeństwa (lista dozwolonych/odrzuconych, filtr SSRF, deduplikacja, klucz pamięci podręcznej) widzi niestandardową etykietę, podczas gdy klient pobierający ten sam URL rozwiązuje formę NFC, więc kontrola i pobieranie mogą się różnić co do hosta.

Ocena ryzyka

Atakujący może wykorzystać tę rozbieżność do obejścia filtrów bezpieczeństwa, takich jak listy dozwolonych/odrzuconych lub filtry SSRF, co może prowadzić do nieautoryzowanego dostępu do zasobów lub ataków typu SSRF.

Rekomendacja

Zaktualizuj moduł URI w Perlu do wersji 5.36 lub nowszej, która zawiera poprawkę normalizacji nameprep.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

URI versions before 5.36 for Perl encode non-NFC host names to non-standard punycode labels via missing normalization in nameprep. nameprep lowercases each host label but performs no Unicode normalization. IDNA requires a label to be normalized to Form C before it is encoded (RFC 5891), so a label that is not already in NFC is encoded to a different A-label than its normalized form. A label built from the precomposed Devanagari sequence U+0958 U+093E encodes to xn--72b5c without normalization but to xn--11b2fg after NFC normalization, and xn--72b5c does not round-trip back to the original label. Any caller that reads host() from a URI built from untrusted input and uses it for a security decision (an allow or deny list, an SSRF filter, deduplication, a cache key) sees the non-standard label, while a client that fetches the same URL resolves the NFC form, so the check and the fetch can disagree about the host.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS