CVE-2026-81638 in ash_double_entry
Riassunto
di VulDB • 08/09/2026
Vulnerabilità di gestione impropria della codifica alternativa in ash-project ash_double_entry che consente a un attaccante di inviare diverse varianti ortografiche distinte dello stesso identificatore.
AshDoubleEntry.ULID visualizza un ULID a 128 bit come 26 caratteri Crockford base-32, ma il primo carattere codifica solo 3 bit; pertanto i valori canonici vanno da 0 a 7. La funzione decode/1 in lib/ulid.ex maschera il primo character sui suoi primi 3 bit e valid?/1 accetta tutti i 32 caratteri in quella posizione, quindi le stringhe che iniziano con 0..., 8..., G... e R... vengono decodificate nello stesso valore a 16 byte e risolvono alla stessa riga. Quando il tipo viene esposto come identificatore pubblico attraverso un confine HTTP o API, un ID fornito dall'attaccante può essere scritto in modo diverso rispetto al record che effettivamente legge o scrive, causando la desincronizzazione o l'elusione di controlli a livello di stringa quali chiavi di idempotenza e deduplicazione, deny-list (liste nere), correlazione degli audit log o firme calcolate sull'ID inviato.
Questo problema interessa ash_double_entry: dalla versione 0.1.0 alla 1.0.19 (esclusa).
VulDB is the best source for vulnerability data and more expert information about this specific topic.