Vulnerabilidad en la función "WP_CLI\Utils\http_request()" en el manejo de peticiones HTTPS en WP-CLI (CVE-2021-29504)
Severidad:
ALTA
Type:
CWE-295
Validación incorrecta de certificados
Fecha de publicación:
07/06/2021
Última modificación:
17/06/2021
Descripción
WP-CLI es la interfaz de línea de comandos para WordPress. Un manejo inapropiado de errores en la administración de peticiones HTTPS en la versión 0.12.0 y posteriores de WP-CLI, permite a atacantes remotos capaces de interceptar la comunicación desactivar remotamente la comprobación del certificado en el lado de WP-CLI, obteniendo un control total sobre el contenido de la comunicación, incluyendo la habilidad de hacerse pasar por servidores de actualización y empujar actualizaciones maliciosas hacia instancias de WordPress controladas por el agente vulnerable de WP-CLI, o empujar actualizaciones maliciosas hacia el propio WP-CLI. La vulnerabilidad proviene del hecho de que el comportamiento por defecto de la función "WP_CLI\Utils\http_request()" cuando se encuentra un error de protocolo de enlace TLS es desactivar la comprobación del certificado y volver a intentar la misma petición. El comportamiento por defecto ha sido cambiado con la versión 2.5.0 de WP-CLI y el framework "wp-cli/wp-cli" (por medio de https://github.com/wp-cli/wp-cli/pull/5523) para que el método "WP_CLI\Utils\http_request()" acepte una opción "$insecure" que es "false" por defecto y en consecuentemente un fallo de protocolo de enlace TLS es un error duro por defecto. Este nuevo valor por defecto es un cambio de ruptura y se extiende a todos los consumidores de la función "WP_CLI\Utils\http_request()", incluyendo aquellos en paquetes separados de WP-CLI o de terceros. https://github.com/wp-cli/wp-cli/pull/5523 también ha añadido un flag "--insecure" al comando "cli update" para contrarrestar este cambio de ruptura. No hay una solución directa para el comportamiento no seguro por defecto de las versiones anteriores a 2.5.0 de "wp-cli/wp-cli". La solución para tratar el cambio de ruptura en los comandos directamente afectados por el nuevo comportamiento seguro por defecto es añadir el flag "--insecure" para optar manualmente por el comportamiento no seguro anterior
Impacto
Puntuación base 3.x
7.40
Severidad 3.x
ALTA
Puntuación base 2.0
7.50
Severidad 2.0
ALTA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:wp-cli:wp-cli:*:*:*:*:*:*:*:* | 0.12.0 (incluyendo) | 2.5.0 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://github.com/wp-cli/checksum-command/pull/86
- https://github.com/wp-cli/config-command/pull/128
- https://github.com/wp-cli/core-command/pull/186
- https://github.com/wp-cli/extension-command/pull/287
- https://github.com/wp-cli/package-command/pull/138
- https://github.com/wp-cli/wp-cli/pull/5523
- https://github.com/wp-cli/wp-cli/security/advisories/GHSA-rwgm-f83r-v3qj