Es identifico una vulnerabilitat en Composer que compromet el repositori PHP d'Packagist

Fa pocs dies es va donar a conèixer la notícia que s'ha identificat una vulnerabilitat crítica en l'administrador de dependències de compositor (CVE-2021-29472) que permet executar ordres arbitràries en el sistema a l'processar un paquet amb un valor d'URL especialment format que determina la direcció per descarregar el codi font.

El problema es manifesta en els components GitDriver, SvnDriver i HgDriver utilitzats amb els sistemes de control de font Git, Subversion i Mercurial. La vulnerabilitat es va corregir en les versions Composer 1.10.22 i 2.0.13.

En particular, el repositori de paquets Packagist predeterminat de Composer, que conté 306.000 paquets de desenvolupador PHP i ofereix més de 1.400 milions de descàrregues mensuals, es veu particularment afectat.

En l'ecosistema PHP, Composer és la principal eina per a administrar i instal·lar dependències de programari. Els equips de desenvolupament de tot el món l'utilitzen per facilitar el procés d'actualització i garantir que les aplicacions funcionin sense esforç en tots els entorns i versions.

L'experiment va mostrar que si hi havia informació sobre el problema, els atacants podien prendre el control de la infraestructura de Packagist i interceptar les credencials dels mantenidors o redirigir la descàrrega de paquets a un servidor de tercers, organitzant el lliurament de variants de paquets amb canvis maliciosos a substituir una porta del darrere durant la instal·lació de dependències.

El perill per als usuaris finals està limitat pel fet que el contingut de composer.json sol estar definit per l'usuari i els enllaços a la font es passen a l'accedir a repositoris de tercers, que solen ser fiables. El cop principal va recaure sobre el repositori Packagist.org i el servei Private Packagist, que criden a Composer amb la transferència de dades rebudes dels usuaris. Els atacants podrien executar el seu codi en servidors Packagist col·locant un paquet especialment dissenyat.

L'equip de Packagist va resoldre la vulnerabilitat dins de les 12 hores posteriors a la notificació de la vulnerabilitat. Els investigadors van notificar a lo privadament als desenvolupadors de Packagist el 22 d'abril i el problema es va solucionar el mateix dia. Una actualització pública d'Composer amb una solució per a la vulnerabilitat es va publicar el 27 d'abril i els detalls es van revelar el 28 d'abril. Una auditoria dels registres en els servidors de Packagist no va revelar cap activitat sospitosa associada amb la vulnerabilitat.

Els errors d'injecció d'arguments són una classe d'errors realment interessant que sovint es passen per alt durant les revisions de codi i es passen per alt per complet en les interaccions de caixa negra

El problema es deu a un error en el codi de validació d'URL a l'arxiu arrel composer.json i en els enllaços de descàrrega d'origen. L'error ha estat present en el codi des de novembre de 2011. Packagist fa servir capes especials per a administrar les descàrregues de codi sense estar vinculat a un sistema de control de font específic, que s'executa trucant a «fromShellCommandline» amb arguments de línia de comandament.

El moll de el problema és que el mètode ProcessExecutor va permetre especificar qualsevol paràmetre de crida addicional a la URL. Tal escapament faltava en els controladors GitDriver.php, SvnDriver.php i HgDriver.php. L'atac GitDriver.php es va veure obstaculitzat pel fet que la comanda «git ls-remote» no admetia l'especificació d'arguments addicionals després de la ruta.

Un atac a HgDriver.php va resultar possible passant el paràmetre «-config» a la utilitat «hq», que permet organitzar l'execució de qualsevol ordre manipulant la configuració «alias.identify».

A l'enviar un paquet de prova amb un URL similar a Packagist, els investigadors es van assegurar que després de ser publicat, el seu servidor rebés una sol·licitud HTTP d'un dels servidors de Packagist en AWS que contenia una llista dels arxius en el directori actual .

Cal assenyalar que els mantenidors no van identificar cap signe d'explotació prèvia d'aquesta vulnerabilitat en la instància pública de l'packagist.

Finalment si estàs interessat en conèixer més a l'respecte, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.