Skip to content

fix: close Action exfiltration channel + wire CVE toggle (audit H1/M1/L2) - #50

Merged
emmanuelgjr merged 1 commit into
mainfrom
fix/audit-action
Jul 18, 2026
Merged

fix: close Action exfiltration channel + wire CVE toggle (audit H1/M1/L2)#50
emmanuelgjr merged 1 commit into
mainfrom
fix/audit-action

Conversation

@emmanuelgjr

Copy link
Copy Markdown
Contributor

H1 (critical Action finding): the narrate job re-opened the exfiltration channel the two-job split exists to close — it fetched only the skill .md (not the CLI), so the CLI-first skill hit its LLM fallback and re-read the raw untrusted repo while holding ANTHROPIC_API_KEY; and 'no egress' was false because the reduced toolset still had Bash (curl).

Fix: render the report deterministically via cli/dsgai_report.py — no LLM, no API key (the secret is now absent from the entire workflow), no repo re-read. The job is secretless and safe on forks. This also fixes L2 (the deterministic renderer was unused). Verified: render-only with just report.py+css+checkpoint produces the HTML, no secret leak.

M1: run_cve_enrichment is now wired to --no-cve (was a dead input; CVE always ran).

actionlint+yamllint clean; ANTHROPIC_API_KEY no longer referenced.

… (audit H1/M1/L2)

- H1/L2: the narrate job re-opened the exact exfiltration channel the two-job
  split existed to close — it fetched only the skill .md (not the CLI), so the
  CLI-first skill hit its LLM fallback and RE-READ the raw untrusted repo, while
  holding ANTHROPIC_API_KEY; and 'no egress' was false because the reduced
  toolset still had Bash (curl). Fix: render the report DETERMINISTICALLY via
  cli/dsgai_report.py — no LLM, no API key (secret removed from the workflow
  entirely), no repo re-read. Also fixes L2 (the deterministic renderer was
  unused). The job is now secretless and safe on forks. Verified: render-only
  with just report.py + css + checkpoint produces the HTML, no secret leak.
- M1: run_cve_enrichment input is now wired to --no-cve (was dead; CVE always ran).

actionlint + yamllint clean; ANTHROPIC_API_KEY no longer referenced anywhere.
@emmanuelgjr
emmanuelgjr merged commit df9c799 into main Jul 18, 2026
9 checks passed
@emmanuelgjr
emmanuelgjr deleted the fix/audit-action branch July 18, 2026 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant