În implementarea interfeței de intrare/ieșire asincronă io_uring, care face parte din kernelul Linux începând cu versiunea 5.1, a fost descoperită o vulnerabilitate (CVE-2022-29582), care permite unui utilizator fără privilegii să obțină drepturi de root în sistem, inclusiv când exploit-ul este rulat dintr-un container. Vulnerabilitatea este cauzată de accesarea unei blocuri de memorie deja eliberate și se manifestă în kernelurile Linux începând cu ramura 5.10, fiind corectată în aprilie în actualizările 5.10.111, 5.15.34 și 5.17.3.
Accesarea memoriei eliberate are loc ca urmare a unei condiții de cursă în procesarea timeout-urilor în funcția io_flush_timeouts(), care elimină o înregistrare a timeout-ului din listă și îl anulează, fără a verifica crearea și eliminarea timeout-ului în acel moment.
Cercetătorii au pregătit un exploit funcțional, care nu necesită activarea spațiilor de numere ale identificatorilor de utilizator (user namespaces) și care poate oferi acces root în sistemul principal atunci când este rulat de un utilizator fără privilegii într-un container izolat. Exploit-ul funcționează, de asemenea, în medii izolate nsjail în distribuția Google COS (Container Optimized OS), bazată pe Chromium OS și utilizată pe Google Cloud Platform în virtuálne mašini Compute Engine. Exploit-ul este destinat să funcționeze cu ramurile kernelului de la 5.10 la 5.12.
Sursa: opennet.ro
