Er is een kwetsbaarheid geïdentificeerd in Composer die de Packagist PHP-repository compromitteert

Paar dagen geleden het nieuws brak dat er een kritieke kwetsbaarheid is geïdentificeerd en de afhankelijkheidsbeheerder van Componist (CVE-2021-29472) waarmee u willekeurige opdrachten op het systeem kunt uitvoeren bij het verwerken van een pakket met een speciaal gevormde URL-waarde die de richting bepaalt om de broncode te downloaden.

Het probleem manifesteert zich in de componenten GitDriver, SvnDriver en HgDriver gebruikt met de Git, Subversion en Mercurial broncontrolesystemen. De kwetsbaarheid is opgelost in Composer-versies 1.10.22 en 2.0.13.

Vooral de standaard Packagist-pakketrepository van Composer, die 306.000 PHP-ontwikkelaarspakketten bevat en meer dan 1.400 miljard downloads per maand biedt, wordt bijzonder getroffen.

In het PHP-ecosysteem is Composer de belangrijkste tool voor het beheren en installeren van softwareafhankelijkheden. Ontwikkelingsteams over de hele wereld gebruiken het om het upgradeproces te vergemakkelijken en ervoor te zorgen dat applicaties moeiteloos in alle omgevingen en versies werken.

Het experiment toonde aan dat als er informatie over het probleem was, de aanvallers de controle over de Packagist-infrastructuur konden overnemen en de inloggegevens van de beheerders konden onderscheppen of het downloaden van pakketten konden omleiden naar een externe server, waardoor de levering van pakketvarianten met wijzigingen kon worden geregeld. kwaadwillende gebruikers om een ​​achterdeur te vervangen tijdens de installatie van afhankelijkheden.

Het gevaar voor eindgebruikers is beperkt vanwege het feit dat de inhoud van composer.json meestal wordt bepaald door de gebruiker en de links naar de bron worden doorgegeven bij toegang tot opslagplaatsen van derden, die meestal betrouwbaar zijn. De grootste klap viel op de Packagist.org-repository en de Private Packagist-service, die Composer bellen met de overdracht van gegevens die zijn ontvangen van gebruikers. Aanvallers kunnen hun code op Packagist-servers uitvoeren door een speciaal vervaardigd pakket te laten vallen.

Het Packagist-team heeft de kwetsbaarheid binnen 12 uur na melding opgelost van kwetsbaarheid. Onderzoekers hebben de Packagist-ontwikkelaars op 22 april privé op de hoogte gebracht en het probleem is dezelfde dag nog opgelost. Een openbare Composer-update met een oplossing voor de kwetsbaarheid werd uitgebracht op 27 april en details werden onthuld op 28 april. Een controle van de logboeken op de servers van Packagist bracht geen verdachte activiteit aan het licht die verband hield met het beveiligingslek.

Argumentinjectiefouten zijn echt een interessante klasse van fouten die vaak over het hoofd worden gezien tijdens codebeoordelingen en volledig over het hoofd worden gezien in black box-interacties.

Het probleem wordt veroorzaakt door een fout in de URL-validatiecode in het root composer.json-bestand en in de brondownloadlinks. De bug zit sinds november 2011 in de code. Packagist gebruikt speciale lagen om het downloaden van code te beheren zonder gebonden te zijn aan een specifiek broncontrolesysteem, dat wordt uitgevoerd door "fromShellCommandline" aan te roepen met opdrachtregelargumenten.

De kern van het probleem is dat de ProcessExecutor-methode het mogelijk maakte om aanvullende oproepparameters in de URL op te geven. Zo'n ontsnapping ontbrak in de stuurprogramma's GitDriver.php, SvnDriver.php en HgDriver.php. De GitDriver.php-aanval werd gehinderd door het feit dat het "git ls-remote" -commando het specificeren van aanvullende argumenten na het pad niet ondersteunde.

Een aanval op HgDriver.php was mogelijk door de parameter "–config" door te geven aan het hulpprogramma "hq", waarmee de uitvoering van elk commando kan worden georganiseerd door de "alias.identify" -configuratie te manipuleren.

Door een testpakket in te dienen met een vergelijkbare URL als Packagist, zorgden de onderzoekers ervoor dat hun server na publicatie een HTTP-verzoek ontving van een van de Packagist-servers op AWS die een lijst van de bestanden in de huidige directory bevatte.

Opgemerkt moet worden dat de beheerders geen tekenen van eerdere uitbuiting van deze kwetsbaarheid in de openbare instantie van de packagist hebben vastgesteld.

Als u er tenslotte meer over wilt weten, kunt u de details raadplegen In de volgende link.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.