È stata identificata una vulnerabilità nella libreria standard C Musl (CVE-2024-2961) che porta a un overflow del buffer durante la conversione di testo appositamente formattato da EUC-KR a UTF-8 utilizzando la funzione iconv(). La vulnerabilità è presente a partire dalla versione musl 0.9.13 e sarà corretta in un imminente rilascio 1.2.6 (fino alla pubblicazione dell'aggiornamento, si raccomanda di utilizzare una patch). La vulnerabilità è stata scoperta da chi gestisce la libreria libxml2 durante i test di fuzzing.
La vulnerabilità può essere utilizzata per attaccare applicazioni compilate con la libreria Musl che eseguono la riconversione del testo proveniente da fonti esterne. Lo sfruttamento della vulnerabilità è possibile chiamando nella propria applicazione la funzione iconv_open() specificando la codifica di origine EUC-KR e la codifica di destinazione UTF-8. Esempi di applicazioni potenzialmente vulnerabili includono programmi che riconvertono XML, HTML e messaggi email in base alla codifica specificata nell'intestazione con tipo MIME (ad esempio, "text/plain; charset=EUC-KR"). Ad esempio, tali riconversioni sono eseguite da programmi che utilizzano la libreria libxml2.
La vulnerabilità è causata da una combinazione di due errori. Il primo errore riguarda l'assenza di un'adeguata verifica delle sequenze multibyte non valide nel decodificatore EUC-KR. Il secondo errore è presente nel codificatore UTF-8, che non era stato progettato per gestire il fatto che il decodificatore dei dati in input può restituire valori scalari Unicode non validi. Di conseguenza, la gestione di sequenze come "\xc8\x41" porta alla scrittura di valori al di fuori dell'area del buffer allocato.
Fonte: opennet.ru
