È stata identificata una vulnerabilità nella libreria standard C Musl (CVE-2024-2961), che porta a un overflow del buffer durante la conversione di testo formattato in modo speciale dalla codifica EUC-KR a UTF-8 utilizzando la funzione iconv(). La vulnerabilità si manifesta dalla versione musl 0.9.13 e sarà corretta nella prossima versione 1.2.6 in fase di pubblicazione (fino alla pubblicazione dell'aggiornamento, è consigliabile utilizzare una patch). La vulnerabilità è stata scoperta dal team che supporta la libreria libxml2 durante i test di fuzzing.
La vulnerabilità può essere sfruttata per attaccare applicazioni compilate con la libreria Musl che eseguono la ricodifica del testo ricevuto da fonti esterne. L'exploitation della vulnerabilità è possibile chiamando nella applicazione la funzione iconv_open() specificando la codifica sorgente EUC-KR e la codifica di destinazione UTF-8. Per esempio, si segnalano applicazioni potenzialmente vulnerabili, come programmi che ricodificano XML, HTML e messaggi e-mail in base alla codifica specificata nell'intestazione del MIME-type (ad esempio, "text/plain; charset=EUC-KR"). Per esempio, tali operazioni di ricodifica vengono eseguite da programmi che utilizzano la libreria libxml2.
La vulnerabilità è causata dalla combinazione di due errori. Il primo errore riguarda la mancanza di controlli adeguati su sequenze multibyte non valide nel decodificatore EUC-KR. Il secondo errore è presente nel codificatore UTF-8, che non è stato progettato per gestire il fatto che il decodificatore dei dati in ingresso potrebbe restituire valori scalari Unicode non validi. Di conseguenza, l'elaborazione di sequenze del tipo «\xc8\x41» porta alla registrazione di valori al di fuori dell'area di memoria allocata.
Fonte: opennet.ru
