O bibliotecă standard C Musl a identificat o vulnerabilitate (CVE-2024-2961) care duce la un overflow de buffer în timpul conversiei unui text special formatat din codificarea EUC-KR în UTF-8 prin funcția iconv(). Vulnerabilitatea apare începând cu versiunea musl 0.9.13 și va fi corectată în versiunea 1.2.6 care este în curs de publicare (până la publicarea actualizării, se recomandă utilizarea unui patch). Vulnerabilitatea a fost descoperită de către biblioteca libxml2 în timpul testării fuzzing.
Vulnerabilitatea poate fi utilizată pentru a lansa atacuri împotriva aplicațiilor compilate cu biblioteca Musl care realizează recodificarea textului provenit din surse externe. Exploatarea vulnerabilității este posibilă prin apelul în aplicație a funcției iconv_open() cu specificarea codificării sursă EUC-KR și a codificării țintă UTF-8. Ca exemplu de aplicații potențial vulnerabile, se menționează programele care recodifică XML, HTML și mesaje de poștă pe baza codificării specificate în antetul cu tipul MIME (de exemplu, "text/plain; charset=EUC-KR"). De exemplu, astfel de recodificări sunt efectuate de programele care utilizează biblioteca libxml2.
Vulnerabilitatea este cauzată de o combinație a două erori. Prima eroare este legată de absența unei verificări corespunzătoare a secvențelor de caractere multibite invalide în decodorul EUC-KR. A doua eroare este prezentă în encoder-ul UTF-8, care nu a fost proiectat pentru a trata cazul în care decodorul datelor de intrare poate returna valori scalare Unicode invalide. Ca urmare, procesarea secvențelor de tip "\xc8\x41" duce la scrierea valorilor în afara zonei de memorie alocate.
Sursa: opennet.ro
