Sårbarhed i Docker, der gør det muligt at slippe ud af containeren

I værktøjet til at administrere isolerede Linux-containere Docker opdaget sårbarhed (CVE-2018-15664), som under bestemte omstændigheder giver adgang til værtsmiljøet fra containeren, hvis der er mulighed for at køre egne billeder i systemet eller ved adgang til den kørende container. Problemet opstår i alle versioner af Docker og forbliver uafhjulpet (forslået, men endnu ikke accepteret, patch, som implementerer suspendering af containerens drift i løbet af operationer med FS).

Sårbarheden tillader at udtrække filer fra containeren til vilkårlige dele af værts-systemets FS ved at udføre kommandoen «docker cp». Udtrækning af filer sker med root-rettigheder, hvilket muliggør læsning eller skrivning af vilkårlige filer i værtsmiljøet, hvilket er tilstrækkeligt til at få kontrol over værts-systemet (f.eks. kan man overskrive /etc/shadow).

Angrebet kan kun udføres i det øjeblik, hvor administratoren udfører kommandoen «docker cp» for at kopiere filer til containeren eller fra den. Således er angriberen nødt til på en eller anden måde at overbevise Docker-administratoren om nødvendigheden af at udføre denne operation og forudse den sti, der anvendes til kopiering. På den anden side kan angrebet f.eks. udføres, når cloud-tjenester tilbyder midler til at kopiere konfigurationsfiler til containeren, som er bygget ved hjælp af kommandoen «docker cp».

Problemet skyldes en mangel i anvendelsen af funktionen FollowSymlinkInScope, der beregner den absolutte sti i hoved-FS på baggrund af den relative sti, der tager hensyn til containerens placering. Under udførelsen af kommandoen «docker cp» opstår der en kortvarig race condition, hvor stien allerede er kontrolleret, men operationen endnu ikke er udført. Da kopiering udføres i konteksten af hoved-FS i værts-systemet, kan man i det angivne tidsrum nå at ændre linket til en anden sti og initiere kopiering af data til vilkårlig plads i filsystemet uden for containeren.

Da tidsvinduet for manifestation af race condition er meget begrænset i den forberedte prototype af exploiten Under copying operations from the container, a successful attack was achieved in less than 1% of cases by cyclically replacing the symbolic link in the path used in the copy operation (the successful attack was made after approximately 10 seconds of continuous attempts to copy the file using the 'docker cp' command).

When performing a copy operation into the container, a repeatable attack can be achieved to overwrite files in the host system in just a few iterations. The attack possibility is related to the fact that the 'chrootarchive' concept is used when copying into the container, according to which the archive.go process extracts the archive not in the chroot root of the container but in the chroot parent directory of the target path, controlled by the attacker, and does not stop the execution of the container at this point (chroot is used as an indicator for exploiting a race condition).

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster