Kwetsbaarheid in Docker die ontsnappen uit een container mogelijk maakt

In de beheertools voor geĆÆsoleerde Linux-containers Docker gedetecteerd kwetsbaarheid (CVE-2018-15664), die onder bepaalde omstandigheden toegang kan verlenen tot de hostomgeving vanuit de container als er de mogelijkheid is om eigen afbeeldingen op het systeem uit te voeren of toegang heeft tot de draaiende container. Het probleem doet zich voor in alle versies van Docker en blijft onopgelost (een voorstel is gedaan, maar nog niet aangenomen, patch, die de onderbreking van het werk van de container implementeert tijdens het uitvoeren van bewerkingen met het bestandssysteem).

De kwetsbaarheid maakt het mogelijk om bestanden uit de container naar een willekeurige locatie in het bestandssysteem van het host-systeem te extraheren door het uitvoeren van de ā€˜docker cp’ opdracht. Bestanden worden geĆ«xtraheerd met root-rechten, wat de mogelijkheid biedt om willekeurige bestanden in de hostomgeving te lezen of te schrijven, wat voldoende is om controle over het host-systeem te krijgen (bijvoorbeeld, het is mogelijk om /etc/shadow te overschrijven).

De aanval kan alleen worden uitgevoerd op het moment dat de beheerder de ā€˜docker cp’ opdracht uitvoert om bestanden naar de container of eruit te kopiĆ«ren. De aanvaller moet dus op een bepaalde manier de Docker-beheerder overtuigen van de noodzaak om deze operatie uit te voeren en het pad dat bij het kopiĆ«ren wordt gebruikt voorspellen. Aan de andere kant kan de aanval bijvoorbeeld worden uitgevoerd wanneer cloudservices middelen bieden voor het kopiĆ«ren van configuratiebestanden naar de container, die zijn opgebouwd met behulp van de ā€˜docker cp’ opdracht.

Het probleem is veroorzaakt door een tekortkoming in het gebruik van de functie FollowSymlinkInScope, die het absolute pad in het hoofd-bestandssysteem berekent op basis van het relatieve pad dat rekening houdt met de locatie van de container. Tijdens het uitvoeren van de ā€˜docker cp’ opdracht ontstaat er een kortstondige raceconditie, waarbij het pad al is gecontroleerd, maar de operatie nog niet is uitgevoerd. Aangezien het kopiĆ«ren plaatsvindt in de context van het hoofd-bestandssysteem van het host-systeem, is het mogelijk om in de opgegeven tijdsperiode de link naar een ander pad te vervangen en het kopiĆ«ren van gegevens naar een willekeurige plaats buiten de container te initiĆ«ren.

Aangezien het tijdelijke venster voor de manifestatie van de raceconditie sterk beperkt is in de voorbereide exploitatietest Bij het uitvoeren van kopieerbewerkingen vanuit de container kon in minder dan 1% van de gevallen een succesvolle aanval worden uitgevoerd door symbolische links in het pad te cyclisch te vervangen, dat in de kopieeroperatie werd gebruikt (de succesvolle aanval vond plaats na ongeveer 10 seconden van continu proberen om een bestand te kopiƫren met de opdracht "docker cp").

Bij het uitvoeren van een kopieeroperatie naar de container kan een herhalingsaanval worden bereikt door een bestand op het host-systeem in slechts enkele iteraties te overschrijven. De mogelijkheid van de aanval is gerelateerd aan het feit dat bij het kopiƫren naar de container het concept "chrootarchive" wordt toegepast, volgens welke het proces archive.go het archief niet in de chroot-root van de container uitpakt, maar in de chroot van de bovenliggende map van het doelpad, dat onder controle van de aanvaller staat en het uitvoeren van de container niet stopt (chroot wordt gebruikt als indicator voor het exploiteren van een race-condition).

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster