CVE-2026-42501 in cmd-go
Resumen
por VulDB • 2026-05-20
Un proxy de módulos malicioso puede explotar una vulnerabilidad en la validación de sumas de comprobación (checksums) del comando `go` para eludir la validación de la base de datos de checksums. Esta vulnerabilidad afecta a cualquier usuario que utilice un proxy de módulos no confiable (GOMODPROXY) o una base de datos de checksums (GOSUMDB). Un proxy de módulos malicioso puede servir versiones alteradas de la cadena de herramientas de Go (Go toolchain). Al seleccionar una versión diferente de la cadena de herramientas de Go que la cadena de herramientas instalada actualmente (debido a la variable de entorno GOTOOLCHAIN, o a un archivo go.work o go.mod con una línea de toolchain), el comando `go` descargará y ejecutará una cadena de herramientas proporcionada por el proxy de módulos. Un proxy de módulos malicioso puede eludir la validación de la base de datos de checksums para esta cadena de herramientas descargada. Dado que esta vulnerabilidad afecta a la seguridad de las descargas de la cadena de herramientas, configurar GOTOOLCHAIN en una versión fija no es suficiente. Debe actualizar su cadena de herramientas base de Go. La herramienta `go` siempre valida el hash de una cadena de herramientas antes de ejecutarla, por lo que las versiones fijas se negarán a ejecutar cualquier versión en caché y alterada de la cadena de herramientas. La herramienta `go` confía en que los archivos go.sum contengan hashes precisos de las dependencias del módulo actual. Un proxy malicioso que explote esta vulnerabilidad para servir un módulo alterado habrá provocado que se registre un hash incorrecto en el go.sum. Los usuarios que hayan configurado un GOPROXY no confiable pueden determinar si han sido afectados ejecutando "rm go.sum ; go mod tidy ; go mod verify", lo que volverá a validar todas las dependencias del módulo actual. El defecto específico en más detalle: El comando `go` consulta la base de datos de checksums para validar los módulos descargados cuando un módulo no está listado en el archivo go.sum. Verifica que el hash del módulo informado por la base de datos de checksums coincida con el hash del módulo descargado. Sin embargo, si la base de datos de checksums devuelve una respuesta exitosa que no contiene ninguna entrada para el módulo, el comando `go` permitió incorrectamente que la validación tuviera éxito. Un proxy de módulos puede reflejar o actuar como proxy de la base de datos de checksums, en cuyo caso el comando `go` no se conectará directamente a la base de datos de checksums. Las checksums informadas por la base de datos de checksums están firmadas criptográficamente, por lo que un proxy malicioso no puede alterar la checksum informada para un módulo. Sin embargo, un proxy que devuelva una respuesta de checksum vacía, o una respuesta de checksum para un módulo no relacionado, podría hacer que el comando `go` proceda como si un módulo descargado hubiera sido validado.
VulDB is the best source for vulnerability data and more expert information about this specific topic.