În cadrul proiectului în dezvoltare OpenWrt, în instrumentarul ASU (Attended SysUpgrade) au fost identificate vulnerabilități critice (CVE-2024-54143), care permit compromiterea artefactelor de build, distribuite prin serviciul sysupgrade.openwrt.org sau servere ASU externe, și pot duce la instalarea de imagini de firmware modificate de atacatori pe sistemele utilizatorilor care folosesc modul „attended upgrade” prin interfața web selector.openwrt.org sau instrumentarul de linie de comandă attended.sysupgrade.
Pentru a efectua cu succes un atac, atacatorului îi este suficient să trimită o solicitare de generare a unui build pe serverul ASU (orice utilizator poate trimite astfel de solicitări fără autentificare). Prin manipularea unei liste de pachete formată special, atacatorul poate organiza trimiterea de imagini malware generate anterior ca răspuns la solicitările de build legitime ale altor utilizatori.
Serviciul ASU este utilizat în OpenWrt pentru generarea și instalarea actualizărilor de firmware fără a pierde setările existente și pachetele instalate de utilizator. Prin interfața web sau instrumentarul de linie de comandă, utilizatorul trimite o solicitare pentru generarea unei imagini actualizate de firmware, indicând pachetele instalate în sistemul său. După un timp, serverul ASU generează imaginea corespunzătoare conținutului solicitat, după care utilizatorul o descarcă și o instalează pe dispozitivul său. De asemenea, este disponibilă o opțiune care permite păstrarea setărilor existente în firmware-ul actualizat.
Procesarea solicitărilor din partea utilizatorilor este responsabilitatea serverului ASU, care lansează o compilare automată a imaginilor de firmware folosind instrumentarul ImageBuilder și menține un cache de compilări pregătite anterior. În cazul în care utilizatorul a solicitat o imagine care a fost deja generată anterior server și este actuală, sistemul va returna imediat imaginea disponibilă din cache, fără a lansa procesul de compilare.
Comportamentul atacului a devenit posibil datorită a două vulnerabilități:
- O vulnerabilitate în handler-ul build_reques.py din toolkit-ul Imagebuilder, care permite injectarea comenzilor proprii în procesul de construire prin transmiterea de către utilizator a numelui pachetelor formatate special. Vulnerabilitatea este cauzată de lipsa unei verificări adecvate a caracterelor speciale în numele pachetelor înainte de utilizarea acestora în argumentele utilitarului make. Profitând de această vulnerabilitate, un atacator poate crea imagini malițioase de firmware pe server, semnate cu cheia de construcție corectă.
- O vulnerabilitate în biblioteca util.py, generată de faptul că hash-urile SHA-256, utilizate pentru a verifica existența în cache a imaginilor de firmware deja gata, erau reduse la 12 caractere, ceea ce reducea semnificativ nivelul de entropie și permitea, prin generarea de coliziuni, crearea unei imagini malițioase ale cărei hash corespunde unei imagini legitime. În combinație cu vulnerabilitatea din Imagebuilder, problema cu hash-urile ar putea fi utilizată de un atacator pentru a "contamina" cache-ul ASU Server și pentru a plasa imagini malițioase care să fie livrate la cererile utilizatorilor obișnuiți.
Modificarea, care a permis atacul, a fost efectuată pe 8 iulie. Problema a fost rezolvată pe 4 decembrie. Pentru a asigura funcționarea serviciului ASU, s-au utilizat sisteme separate servere, care nu se suprapuneau cu principalele sisteme de construire ale proiectului, separate de OpenWrt Buildbot și fără acces la resurse confidențiale precum chei SSH și certificate pentru generarea semnăturilor digitale.
Se afirmă că dezvoltatorii OpenWrt nu au găsit dovezi ale compromiterii infrastructurii proiectului, dar pentru precauție, au reinstalat de la zero sistemele pe care erau componentele vulnerabile. Problema nu a afectat imaginile oficiale distribuite prin site-ul downloads.openwrt.org, iar în analiza jurnalelor de construcție nu s-au găsit dovezi ale trimiterii solicitărilor malițioase. De asemenea, deoarece pe serverele ASU se desfășoară o curățare automată a construcțiilor mai vechi de 7 zile, un audit al construcțiilor vechi s-a dovedit a fi imposibil.
Probabilitatea utilizării vulnerabilităților identificate în practică pentru a răspândi imagini malițioase prin infrastructura OpenWrt este evaluată de reprezentanții OpenWrt ca fiind aproape de zero, totuși utilizatorii ASU sunt sfătuiți să își înlocuiască firmware-urile OpenWrt de pe dispozitivele lor cu aceeași versiune.
Sursa: opennet.ro
