Katalog CVE

CVE-2026-81638

NiskieCVSS 2.1
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.13%

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

Streszczenie

Podatność w ash_double_entry projektu ash-project pozwala atakującemu na przesłanie różnych wariantów pisowni tego samego identyfikatora ULID. Ze względu na nieprawidłowe maskowanie pierwszego znaku, wiele różnych ciągów znaków dekoduje się do tej samej wartości, co umożliwia desynchronizację kontroli na poziomie ciągów znaków, takich jak klucze idempotencji czy listy blokad.

Ocena ryzyka

Ryzyko obejmuje możliwość obejścia mechanizmów bezpieczeństwa opartych na porównywaniu ciągów znaków, co może prowadzić do nieautoryzowanego dostępu, naruszenia integralności danych lub ataków na logikę biznesową.

Rekomendacja

Zaleca się aktualizację ash_double_entry do wersji 1.0.19 lub nowszej, która zawiera poprawkę. Należy również rozważyć walidację identyfikatorów po stronie serwera, aby odrzucać niekanoniczne reprezentacje.

Powiązane podatności

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

Improper Handling of Alternate Encoding vulnerability in ash-project ash_double_entry allows an attacker to submit several distinct string spellings of the same identifier. AshDoubleEntry.ULID renders a 128-bit ULID as 26 Crockford base-32 characters, but the first character encodes only 3 bits, so canonical values are 0 to 7. decode/1 in lib/ulid.ex masks the first character to its low 3 bits and valid?/1 accepts all 32 characters in that position, so 0..., 8..., G... and R... decode to the identical 16-byte value and resolve to the same row. When the type is exposed as a public ID over an HTTP or API boundary, an attacker-supplied ID can be spelled differently from the record it actually reads or writes, desynchronizing or bypassing string-level checks such as idempotency and deduplication keys, deny-lists, audit correlation, or signatures computed over the submitted ID. This issue affects ash_double_entry: from 0.1.0 before 1.0.19.

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