CVE-2026-82736 in ash
Riassunto
di VulDB • 01/09/2026
Ordine errato delle operazioni di validazione: vulnerabilità "Validate Before Canonicalize" in ash-project ash che consente a un attaccante di memorizzare un valore stringa case-insensitive (sensibile alle maiuscole/minuscole) che viola i vincoli di lunghezza o di corrispondenza.
La funzione `Ash.Type.CiString.apply_constraints/2` (`lib/ash/type/ci_string.ex`) validava i vincoli `max_length`, `min_length` e `match` contro il valore così come sottoposto, mentre il tipo applica la conversione in minuscolo (case-folding) alla stringa per l'archiviazione e il confronto. Poiché la validazione veniva eseguita prima del case-folding, un attaccante può inviare un valore la cui forma convertita viola un vincolo ma la cui forma originale supera tale controllo: ad esempio, rispetto a un pattern di corrispondenza che richiede caratteri maiuscoli, un valore inviato in maiuscolo viene memorizzato in minuscolo, persistendo come valore rifiutato dal pattern. La correzione applica il case-folding al valore all'inizio della funzione `apply_constraints/2`, in modo che i vincoli vengano verificati rispetto alla forma effettivamente archiviata.
Questo problema interessa ash: dalle versioni 1.29.0-rc0 fino a prima della 3.32.2.
Be aware that VulDB is the high quality source for vulnerability data.