În sistemul de construire Buildroot, destinat realizării mediilor Linux bootabile pentru sisteme încorporate, au fost identificate șase vulnerabilități care permit, în contextul interceptării traficului de tip MITM, modificarea imaginilor de sistem generate sau executarea de cod la nivelul sistemului de construire. Vulnerabilitățile au fost remediate în versiunile Buildroot 2023.02.8, 2023.08.4 și 2023.11.
Primele cinci vulnerabilități (CVE-2023-45841, CVE-2023-45842, CVE-2023-45838, CVE-2023-45839, CVE-2023-45840) afectează codul de verificare a integrității pachetelor pe baza hash-urilor. Problemele se reduc la posibilitatea utilizării HTTP pentru descărcarea fișierelor și lipsa fișierelor hash de verificare pentru unele pachete, ceea ce permite substituirea conținutului acestor pachete, având oportunitatea de a interveni în traficul de construire. server (de exemplu, în cazul în care utilizatorul se conectează printr-o rețea wireless controlată de atacator).
În special, pachetele aufs și aufs-util au fost descărcate prin HTTP și nu au fost verificate prin hash-uri. Hash-urile au lipsit și pentru pachetele riscv64-elf-toolchain, versal-firmware și mxsldr, care în mod implicit erau descărcate prin HTTPS, dar în caz de probleme reveneau la descărcarea fără criptare de la gazda http://sources.buildroot.net. În absența fișierelor „.hash”, instrumentul Buildroot considera că verificarea a fost un succes și prelucra pachetele descărcate, inclusiv aplica patch-urile incluse în pachete și rula scripturile de construcție. Având posibilitatea de a substitui pachetele descărcate, atacatorul putea adăuga în ele propriile patch-uri sau fișiere Makefiles de construcție, ceea ce permitea modificarea imaginii rezultante sau scripturilor sistemului de construcție și execuția propriului cod.
A șasea vulnerabilitate (CVE-2023-43608) este cauzată de o eroare în implementarea funcționalității BR_NO_CHECK_HASH_FOR, care permite dezactivarea verificării integrității prin hash-uri pentru pachetele selectate. Anumite pachete, cum ar fi kernelul Linux, U-Boot și versal-firmware, permiteau descărcarea celor mai recente versiuni pentru care nu erau încă formate hash-uri de verificare. Pentru aceste versiuni se aplica opțiunea BR_NO_CHECK_HASH_FOR, care dezactiva verificarea prin hash. Datele erau descărcate prin HTTPS, dar în mod implicit, în caz de eșec al descărcării, se revenea la apelarea source.buildroot.net fără criptare prin protocolul http://. Atacatorul, în timpul unui atac MITM, putea bloca conexiunea la serverul HTTPS, iar astfel descărcarea revenea la http://sources.buildroot.net.
Sursa: opennet.ro
