Palabra clave `shell` de GitHub Actions: Flexibilidad inesperada e implicaciones de seguridad

2025-04-08

La palabra clave `shell` en GitHub Actions permite especificar el shell para un bloque de ejecución determinado. Sin embargo, esto es mucho más flexible de lo que sugiere la documentación. Admite no solo shells predefinidos como bash y pwsh, sino cualquier ejecutable en el `$PATH` del sistema. Esto significa que puede ejecutar código C usando un compilador C, o incluso modificar dinámicamente `$GITHUB_PATH` para cambiar el comportamiento del shell. Si bien esto ofrece flexibilidad, también introduce riesgos de seguridad, ya que las escrituras de archivos pueden implicar ejecución. Esto contrasta con la práctica inesperada de GitHub de realizar búsquedas en `$PATH` incluso para sus valores de shell "conocidos".

Desarrollo