Observed since 20 Oct, 18:34 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Analyze the security posture of one or more GitHub Actions
asa (actions-security-analzyer) is a tool to analyze the security posture of your GitHub Actions.

Make sure you have
$HOME/.local/binin your PATH
pip install actions-security-analzyer
asa --file action.yml
asa -d directory-with-actions/ --verbose
asa --file action.yml --ignore-warnings
asa --list-checks
asa in Your GitHub Workflowsname: 'RunActionsSecurityAnalzyer'
on:
push:
branches:
- main
- dev
paths:
- '.github/workflows/**'
jobs:
RunAsa:
runs-on: ubuntu-latest
steps:
- name: "Checkout repo"
uses: actions/checkout@96f53100ba2a5449eb71d2e6604bbcd94b9449b5 # v3.5.3
- name: "Run asa scanner"
uses: "bin3xish477/asa@ee733379e314d44f1a960a70339ee5e5d19e404d"
with:
dir: "./actions/"
verbose: true
no-summary: true
ignore-checks: 'check_for_inline_script check_for_cache_action_usage'
asaName: check_for_3p_actions_without_hash, Level: FAIL
v1.1 instead of commit SHA haah. Using a hash can help mitigate supply chain threats in a scenario where a threat actor has compromised the source repository where the 3P action lives.Name: check_for_allow_unsecure_commands, Level: FAIL
ACTIONS_ALLOW_UNSECURE_COMMANDS which allows for an Action to get access to dangerous commands (get-env, add-path) which can lead to code injection and credential thefts opportunities.Name: check_for_cache_action_usage, Level: WARN
actions/cache) which may result in sensitive information disclosure or cache poisoning.Name: check_for_dangerous_write_permissions, Level: FAIL
contents scope which may allow an adversary write code into the target repository if they're able to compromise the workflow. It's also looks for usage of the write-all which gives the action complete write access to all scopes.Name: check_for_inline_script, Level: WARN
asa). It is recommended to write an action and pass any required context values as inputs to that action which removes script injection vector because action input are properly treated as arguments and are not evaluated as part of a script.Name: check_for_pull_request_target, Level: FAIL
pull_request_target which allows workflow executions to run in the context of the repository that defines the workflow, not the repository that the pull request originated from, potentially allowing a threat actor to gain access to a repositories sensitive secrets!Name: check_for_script_injection, Level: FAIL
${{ ... }} syntax) a GitHub Context variable(s) in an inline script that can be controlled by an untrusted actor, resulting in command execution in the interpreted shell. These user-controllable parameters should be passed into an inline script as environment variables.Name: check_for_self_hosted_runners, Level: WARN
Name: check_for_aws_configure_credentials_non_oidc, Level: WARN
aws-actions/configure-aws-credentials action and attempts to identify non-OIDC authentication parameters. Non-OIDC authentication types are less secure than OIDC because they require the creation of long-term credentials which can be compromised, however, OIDC tokens are short-lived and are usually scoped to only the permissions that are essential to a workflow and thus help reduce the attack surface.Name: check_for_pull_request_create_or_approve, Level: WARN
Name: check_for_remote_script, Level: WARN
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.4.5 | 3 Aug 2023 | 5 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 18:34 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:fc9da3411c0665d386fb3be228fa9f9256cd4d693e53a4533151bc6cdbd2a338