本章节收录流水线安全案例
- Pull Request通常审批后才能合入。作者在提交PR时同时提交workflow脚本,并通过workflow调用API接口自动approve,实现审批绕过。修复方法是将审批人数量改为2个以上
- github workflow 允许读取仓库文件,但是没有过滤软连接。通过上传/proc/self/environ的软连接,spell-check会提示这个文件语法错误,并打印文件内容,导致GITHUB_TOKEN泄露
- github workflow的${{}}语法会调用bash执行命令。由于branch名字用户可控,当workflow写法有问题时,可以在CI运行环境执行任意命令
有漏洞的写法 run: | echo "${{steps.fetch-branch-names.outputs.result}}" 利用时传入的branch名字 dependabot;cat$IFS$(echo$IFS'LmdpdA=='|base64$IFS'-d')/config|base64;sleep$IFS'10000';#
待补充