360 Secure SkillHub
360 安全技能中心

GitHub Actions Secret Exposure Audit

核心功能:扫描工作流YAML文件,检测pull_request_target用秘钥、打印秘钥命令、秘钥传入未固定版本第三方动作、硬编码凭证等风险。典型场景:CI/CD安全检查、代码提交前审计。支持自定义扫描范围、告警阈值,输出文本/JSON,可配置临界风险触发CI失败。

daniellummis
daniellummis
热度 64.84
最近更新 2026-05-11 17:29:28
分类:安全依赖:代码执行 / 读写文件应用场景:DevOps / 报告撰写 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add github-actions-secret-exposure-audit
Metadata
name
github-actions-secret-exposure-audit
description
Audit GitHub Actions workflow files for secret exposure risks like pull_request_target secret usage, secret echo commands, and unpinned action secret passing.
version
1.0.0
metadata
{"openclaw":{"requires":{"bins":["bash","python3"]}}}

GitHub Actions Secret Exposure Audit

Use this skill to catch risky secret handling patterns in workflow YAML before they leak credentials or allow unsafe token use.

What this skill does

  • Scans workflow YAML files (.github/workflows/*.yml by default)
  • Flags pull_request_target workflows that also reference ${{ secrets.* }}
  • Flags shell output commands that print secret expressions (echo, printf, tee, ::set-output)
  • Flags secret values passed into unpinned third-party actions (@main, @master, @v1, etc.)
  • Flags likely hardcoded credential values in workflow config
  • Supports text/json output and CI fail gate

Inputs

Optional:

  • WORKFLOW_GLOB (default: .github/workflows/*.y*ml)
  • TOP_N (default: 20)
  • OUTPUT_FORMAT (text or json, default: text)
  • WARN_SCORE (default: 4)
  • CRITICAL_SCORE (default: 8)
  • WORKFLOW_FILE_MATCH / WORKFLOW_FILE_EXCLUDE (regex, optional)
  • ALLOW_REF_REGEX (regex, optional) — allow listed action refs (for example ^v1\.2\.3$)
  • FAIL_ON_CRITICAL (0 or 1, default: 0)

Run

Text report:

WORKFLOW_GLOB='.github/workflows/*.yml' \
WARN_SCORE=4 \
CRITICAL_SCORE=8 \
bash skills/github-actions-secret-exposure-audit/scripts/secret-exposure-audit.sh

JSON output + fail gate:

WORKFLOW_GLOB='.github/workflows/*.y*ml' \
OUTPUT_FORMAT=json \
FAIL_ON_CRITICAL=1 \
bash skills/github-actions-secret-exposure-audit/scripts/secret-exposure-audit.sh

Run against bundled fixtures:

WORKFLOW_GLOB='skills/github-actions-secret-exposure-audit/fixtures/*.y*ml' \
bash skills/github-actions-secret-exposure-audit/scripts/secret-exposure-audit.sh

Output contract

  • Exit 0 in reporting mode (default)
  • Exit 1 when FAIL_ON_CRITICAL=1 and one or more workflows are critical
  • Text mode prints summary + top risky workflows
  • JSON mode prints summary + ranked workflows + critical workflows