Causa
El ataque de confusión de dependencias permite ejecutar de forma remota código arbitrario en un servidor al engañar a un administrador de dependencias (por ejemplo, el Compositor de PHP) para que descargue un paquete malicioso desde una fuente pública en lugar del paquete original desde un repositorio privado.
Un ataque de este tipo puede incluso pasar inadvertido si un atacante es capaz de mantener la funcionalidad del paquete original.
Los atacantes pueden aprovechar esta vulnerabilidad si un paquete solo está disponible a través de repositorios privados, pero no está registrado en el público. A continuación, el atacante carga un paquete con el mismo nombre en el repositorio público y le proporciona una versión superior a la disponible de forma privada. El administrador de dependencias comparará las versiones de los paquetes disponibles tanto de forma privada como pública y elegirá la más alta del repositorio público. El código malintencionado descargado por el administrador de dependencias se ejecutará con los mismos privilegios que el código de la aplicación.
Resolución
Recomendaciones a los comerciantes
- Tome en serio el mensaje de error que se muestra cuando el complemento detiene la instalación o actualización del compositor y póngase en contacto con el desarrollador de la extensión si reconoce el paquete potencialmente comprometido.
- Puede instalar Adobe Commerce con la versión segura del paquete desde Marketplace u otro repositorio privado de confianza.
- Cambie la versión del paquete necesaria en su
composer.json
por la versión exacta que se encuentra en la Marketplace para continuar con la instalación/actualización del compositor.
Expectativas de los desarrolladores de extensiones
- No hay forma de saber con certeza si el paquete de un complemento, si de un repositorio público, se ha visto comprometido o no. El complemento detectará cuando una versión pública de un paquete en packagist.org tenga una versión superior a la disponible en un repositorio privado como repo.magento.com. Recomendamos encarecidamente que los desarrolladores de extensiones eviten estas situaciones y no publiquen versiones más recientes públicamente que las disponibles a través de repo.magento.com.
- Adobe Commerce entiende que el proceso de revisión del mercado puede retrasar la disponibilidad de la versión de las extensiones, pero el proceso está ahí para mantener a los comerciantes seguros y para ayudar a los desarrolladores de extensiones a encontrar errores accidentales que podrían haberse perdido.