
GitHub busca fortalecer la seguridad de su cadena de suministro de software actualizando «actions/checkout» para bloquear ataques de solicitud pwn que explotan el uso peligroso de los activadores «pull_request_target flowflow» para ejecutar código malicioso con privilegios completos en el flujo de trabajo.
A partir del 18 de junio de 2026, la última versión de «actions/checkout», la acción oficial de GitHub para verificar repositorios para ejecutores de flujo de trabajo, rechaza los patrones de solicitud pwn comunes de forma predeterminada. Este cambio se respaldará en todas las versiones principales actualmente compatibles el 16 de julio de 2026.
«Actions/checkout v7 se niega a recuperar el código de solicitud de extracción de bifurcación en los flujos de trabajo pull_request_target y flowwork_run (este último solo si flow_run.event es un evento pull_request*)», agregó.
A menos que la solicitud de extracción provenga de una bifurcación y el autor del flujo de trabajo opte explícitamente por no establecer el indicador «allow-unsafe-pr-checkout» en «true» en «actions/checkout», se produce un rechazo si se cumple alguno de los siguientes criterios:
Repositorio: se resuelve bifurcar el encabezado de solicitud de extracción o fusionar SHA de confirmación
Este cambio tiene como objetivo prevenir la forma más común de solicitudes pwn en el ecosistema de Acciones. Como resultado, «acciones/compra» falla para «eventos pull_request_target» de bifurcaciones con entradas no seguras.
«Pull_request_target» es un activador de flujo de trabajo que se ejecuta automáticamente, sin aprobación manual, cuando se abre o se vuelve a abrir una solicitud de extracción, o cuando se actualiza la rama principal de una solicitud de extracción. Es importante tener en cuenta que el evento se ejecuta en el contexto de la rama predeterminada del repositorio base y puede exponer secretos y privilegios GITHUB_TOKEN con permisos de lectura y escritura.
«La ejecución de código que no es de confianza en un disparador pull_request_target puede generar vulnerabilidades de seguridad», dice GitHub en su documentación. «Estas vulnerabilidades incluyen envenenamiento de la caché y permitir el acceso no deseado a permisos de escritura y secretos».
El peligro surge cuando «pull_request_target» se combina con «actions/checkout» para descargar y ejecutar código enviado por una bifurcación que no es de confianza. Si un atacante malicioso envía una solicitud de extracción que contiene un script malicioso y su flujo de trabajo verifica y ejecuta ese código, el atacante podría robar GITHUB_TOKEN y otros secretos, lo que lleva al llamado ataque de solicitud pwn.
«Los flujos de trabajo desencadenados por pull_request_target se ejecutan utilizando el GITHUB_TOKEN, el secreto y el acceso a la caché de rama predeterminada del repositorio base», dice GitHub. «Verificar el comienzo de una solicitud de extracción no revisada desde una bifurcación dentro de uno de estos flujos de trabajo generalmente permite que el código controlado por el atacante se ejecute con todos los privilegios del flujo de trabajo».
En los últimos meses, muchos ataques en cadena de software han convertido este comportamiento en un arma. El más grave de ellos fue el compromiso de múltiples paquetes relacionados con el sistema de compilación Nx como parte de una campaña con nombre en código s1ngularity, así como PostHog, TanStack y el popular paquete Emacs «kubernetes-el/kubernetes-el».
«Pull_request_target fue diseñado para una automatización confiable en torno a las solicitudes de extracción, incluido el etiquetado, los comentarios y la aplicación de metadatos del proyecto», dijo Socket. «Sin embargo, el paso de pago controla qué código se coloca realmente en el espacio de trabajo del corredor. Extraer código de una solicitud de extracción bifurcada podría dar como resultado que el flujo de trabajo ejecute código controlado por el atacante con los privilegios del repositorio base».
Dicho esto, la subsidiaria propiedad de Microsoft enfatizó que otros tipos de eventos distintos de pull_request_target (como issues_comment) o solicitudes pwn activadas a través de otros medios como git o GitHub CLI están fuera del alcance de este cambio.
«Este cambio solo bloquea las comprobaciones del encabezado de solicitud de extracción de la bifurcación y las confirmaciones de fusión», agregó. «La verificación de otros repositorios que no son de confianza no está bloqueada. Por ejemplo, configurar el repositorio: en un repositorio de terceros no relacionado no está bloqueada. La extracción y ejecución de código que no es de confianza en un evento privilegiado sigue siendo un riesgo para las solicitudes de pwn y debe considerarse».
Para contrarrestar los riesgos que plantea ‘pull_request_target’, se anima a los desarrolladores a evaluar ‘pull_request_target’ y usarlo solo cuando sea necesario, cambiar a ‘pull_request’ cuando el flujo de trabajo no requiera permisos elevados o acceso a secretos, limitar los permisos otorgados al flujo de trabajo y garantizar que las entradas de control del usuario no provoquen la ejecución de código que no es de confianza.
«Las protecciones en esta actualización son sólo para pagos realizados a través de Acciones/Pagos», dijo Socket. «Como tal, se trata de una barrera de seguridad en lugar de una solución completa para la seguridad de las acciones. Los flujos de trabajo que se ejecutan con secretos, permisos de escritura, permisos de implementación o acceso público OIDC aún requieren una revisión cuidadosa».
Source link
