GitHub Actions 的 shell 关键字:意料之外的灵活性

2025-04-08

GitHub Actions 中的 shell 关键字允许自定义运行块的 shell,但这比文档描述的更灵活。它不仅支持 bash、pwsh 等预定义 shell,还支持系统 $PATH 中的任何可执行文件。这意味着你可以使用 C 编译器运行 C 代码,甚至动态修改 $GITHUB_PATH 来改变 shell 的行为。虽然这带来了灵活性,但也增加了安全风险,因为文件写入可能暗示执行。这与 GitHub 对“已知”shell 值进行 $PATH 查找的做法形成对比,这种做法出乎意料。

阅读更多
开发

TIL:Bash中一些令人惊讶的代码执行源

2024-11-22

本文介绍了Bash中两种令人惊讶的代码执行源。第一种是算术表达式,例如在`[[ ]]`中使用`-eq`进行比较时,变量会被进行算术运算,攻击者可以利用此特性注入恶意代码。第二种是使用`test -v`或`[[ -v ]]`检查变量是否设置时,同样可能执行嵌入的命令。这两种情况在CI系统中尤其危险,因为这些系统通常使用大量的shell脚本和YAML文件。

阅读更多
未分类