DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
- Always extract into a directory separate from the trusted code in a step before checking out said trusted code. This stops files extracted from the archive from clobbering trusted code.
- A separate directory can also prevent files in the artifact impersonating often used python modules like
pipas runningpython -m pip ...would execute a pip.py file in the cwd - Validate any content you retrieve from an artifact before you use it to avoid command injection, especially in steps using
bashand Github Actions macros.- This includes using
caton such files as well as putting their content into environment variables (a popular exploit is to modifyLD_PRELOAD, some examples ), step outputs to use via${{ steps.id.outputs.sus_content }}to be used in e.g.ifin bash.
- This includes using
- Always If you REALLY HAVE TO run untrusted code (for example as part of your build steps) - you should only do it inside a docker container that you should not pass any credentials to.
- If you build images from Dockerfile that is untrusted make sure you use .dockerignore which is not coming from the PR, which Ignores everything from context by default. Add
**as the first line and only adds (via!directory_pathor!file_path) the files that you need during the build - Make sure your checkout actions have
persist-credentials: falseset - otherwise your GITHUB_TOKEN will be stored locally in git credentials and available to any steps in your job
...