Kwetsberens yn Docker wêrtroch jo út 'e kontener kinne ûntkomme

Yn Toolkit foar it behearen fan isolearre Linux Docker Containers identifisearre kwetsberens (CVE-2018-15664), dy't, ûnder in bepaalde set fan omstannichheden, jo tagong krije ta de hostomjouwing fanút in kontener as jo de mooglikheid hawwe om jo ôfbyldings op it systeem te starten of mei tagong ta in rinnende kontener. It probleem ferskynt yn alle ferzjes fan Docker en bliuwt unfixed (foarsteld, mar noch net akseptearre, patch, dy't de ophinging fan 'e kontener ymplementearret by it útfieren fan operaasjes mei de FS).

De kwetsberens kinne bestannen ekstrahearje fan in kontener nei in willekeurige diel fan it bestânsysteem fan it hostsysteem by it útfieren fan it kommando "docker cp". Bestânsekstraksje wurdt útfierd mei rootrjochten, wat it mooglik makket om alle bestannen yn 'e hostomjouwing te lêzen of te skriuwen, wat genôch is om kontrôle oer it hostsysteem te krijen (jo kinne bygelyks /etc/shadow oerskriuwe).

De oanfal kin allinich útfierd wurde as de behearder it kommando "docker cp" útfiert om bestannen nei of fan 'e kontener te kopiearjen. Sa moat de oanfaller op ien of oare manier de Docker-behearder oertsjûgje fan 'e needsaak om dizze operaasje út te fieren en it paad te foarsizzen dat brûkt wurdt by it kopiearjen. Oan 'e oare kant kin in oanfal útfierd wurde, bygelyks as wolktsjinsten ark leverje foar it kopiearjen fan konfiguraasjebestannen yn in kontener, boud mei it kommando "docker cp".

It probleem wurdt feroarsake troch in flater yn 'e tapassing fan' e funksje FolgjeSymlinkInScope, dy't it absolute paad yn it haadbestânsysteem berekkent op basis fan it relative paad, rekken hâldend mei de pleatsing fan 'e kontener. By it útfieren fan it kommando "docker cp", in koarte termyn ras betingst, wêryn it paad al ferifiearre is, mar de operaasje is noch net útfierd. Sûnt it kopiearjen wurdt útfierd yn 'e kontekst fan it haadbestânsysteem fan it hostsysteem, kinne jo binnen in spesifisearre perioade beheare de keppeling te ferfangen troch in oar paad en it kopiearjen fan gegevens te begjinnen nei in willekeurige lokaasje yn it bestânsysteem bûten de kontener.

Sûnt de tiid finster foar in race betingst te foarkommen is tige beheind yn in taret eksploitearje prototype By it útfieren fan kopyoperaasjes fan in kontener wie it mooglik om in suksesfolle oanfal te realisearjen yn minder dan 1% fan 'e gefallen by it fytslik ferfangen fan in symboalyske keppeling yn it paad dat brûkt waard yn' e kopyoperaasje (de suksesfolle oanfal waard útfierd nei sawat 10 sekonden fan besykjen om it bestân kontinu te kopiearjen yn in lus mei it kommando "docker cp").

Troch it útfieren fan in kopy operaasje yn in kontener, kinne jo berikke in repeatable triem oerskriuwe oanfal op de host systeem yn mar in pear iteraasjes. De mooglikheid fan oanfal komt troch it feit dat by it kopiearjen yn in kontener it konsept "chrootarchive" brûkt wurdt, wêrby't it archive.go-proses it argyf net yn 'e chroot fan 'e kontenerwurde, mar yn 'e chroot fan 'e kontener útpakt. âlder triemtafel fan it doel paad, regele troch de oanfaller, en net stopje de útfiering fan de kontener (chroot wurdt brûkt as in teken te eksploitearjen ras betingsten).

Boarne: opennet.ru

Add a comment