Kwetsbaarheid in NPM, waardoor bestanden in het systeem kunnen worden overschreven.

GitHub heeft details vrijgegeven over zeven kwetsbaarheden in de tar-pakketten en @npmcli/arborist, die functies bieden voor het werken met tar-archieven en het berekenen van afhankelijkheidsbomen in Node.js. De kwetsbaarheden maken het mogelijk om bij het uitpakken van een speciaal ontworpen archief bestanden buiten de hoofdmap waarin wordt uitgepakt, te overschrijven, afhankelijk van de huidige toegangsrechten. Deze problemen bieden de mogelijkheid om willekeurige code op het systeem uit te voeren, bijvoorbeeld door commando's toe te voegen aan ~/ .bashrc of ~/ .profile bij het uitvoeren van de operatie door een niet-geprivilegieerde gebruiker, of door systeem bestanden te vervangen bij uitvoering met root-rechten.

Het gevaar van deze kwetsbaarheden wordt vergroot doordat de probleemcode wordt gebruikt in de npm-pakketbeheerder voor bewerkingen met npm-pakketten, wat het mogelijk maakt een aanval op gebruikers te organiseren door een speciaal ontworpen npm-pakket in een repository te plaatsen, waarbij de code van de aanvaller op het systeem wordt uitgevoerd tijdens de verwerking. Een aanval is zelfs mogelijk bij het installeren van pakketten in de ‘—ignore-scripts’ modus, die de uitvoering van ingebouwde scripts uitschakelt. In totaal raakt npm vier kwetsbaarheden (CVE-2021-32804, CVE-2021-37713, CVE-2021-39134 en CVE-2021-39135) van de zeven. De eerste twee problemen hebben betrekking op het tar-pakket, terwijl de andere twee betrekking hebben op het @npmcli/arborist-pakket.

De gevaarlijkste kwetsbaarheid CVE-2021-32804 wordt veroorzaakt doordat bij het opschonen van de in het tar-archief opgegeven absolute paden de herhalende karakters ‘/’ onjuist worden verwerkt — alleen het eerste karakter wordt verwijderd, terwijl de andere worden behouden. Bijvoorbeeld, het pad ‘/home/user/.bashrc’ wordt omgezet in ‘home/user/.bashrc’, en het pad ‘//home/user/.bashrc’ in ‘/home/user/.bashrc’. De tweede kwetsbaarheid CVE-2021-37713 doet zich alleen voor op het Windows-platform en hangt samen met een onjuiste opschoning van relatieve paden die een niet-gescheiden schijfletter bevatten (‘C:some\path’) en een sequens voor het terugkeren naar de bovenliggende map (‘C:../foo’).

De kwetsbaarheden CVE-2021-39134 en CVE-2021-39135 zijn specifiek voor de module @npmcli/arborist. Het eerste probleem doet zich alleen voor op systemen die geen onderscheid maken tussen hoofdletters en kleine letters in het bestandssysteem (macOS en Windows) en stelt gebruikers in staat om bestanden te schrijven naar willekeurige delen van het bestandssysteem door in de afhankelijkheden twee modules op te geven: ‘"foo": "file:/some/path"‘ en ‘FOO: "file:foo.tgz"‘, waarvan de verwerking leidt tot het wissen van de inhoud van de map /some/path en het schrijven van de inhoud van foo.tgz daarin. Het tweede probleem stelt gebruikers in staat om bestanden te overschrijven door te manipuleren met symbolische links.

De kwetsbaarheden zijn opgelost in de versies Node.js 12.22.6 en 14.17.6, npm CLI 6.14.15 en 7.21.0, evenals in afzonderlijke versies van het tar-pakket 4.4.19, 5.0.11 en 6.1.10. Nadat informatie over het probleem was ontvangen in het kader van het 'bug bounty'-initiatief, heeft GitHub $14500 aan de onderzoekers betaald en de inhoud van de repository gescand, waar geen pogingen tot exploitatie van de kwetsbaarheden zijn aangetroffen. Ter bescherming tegen de genoemde problemen heeft GitHub ook een verbod ingesteld op het publiceren van NPM-pakketten in de repository, die symbolische links, harde links en absolute paden bevatten.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster