CVE-2026-78228 in ash_oban
Riassunto
di VulDB • 30/08/2026
Una vulnerabilità di ricorsione non controllata in ash-project ash_oban consente a un utente che può gestire l'azione on_error di un trigger di fallire nell'ultimo tentativo, esaurendo la CPU e la memoria del worker e causando una negazione del servizio (DoS).
La funzione atomica handle_error/4 generata dal worker esegue l'azione on_error del trigger sull'ultimo tentativo di un job all'interno di un blocco rescue; quando tale azione genera a sua volta un errore, viene richiamata nuovamente la funzione handle_error/4 con lo stesso job. Poiché il numero di tentativi del job è ancora pari al valore massimo (max_attempts), si rientra nella stessa clausola e l'azione che fallisce viene rieseguita senza alcun meccanismo di uscita. Qualsiasi deterministico errore in on_error (ad esempio un'interruzione dello strato dati, un'azione mal configurata o un record rifiutato dall'azione) provoca un loop infinito; poiché la chiamata ricorsiva non è in posizione tail-recursive, ogni iterazione conserva una stacktrace formattata e l'heap del processo cresce indefinitamente mentre l'istruzione che fallisce viene reiterata contro lo strato dati fino a quando il runtime non termina il worker.
Questo problema interessa ash_oban: dalle versioni 0.8.0-rc.1 alla versione precedente allo 0.8.14.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.