An AI reviewer checked the pull request and called it clean. Five days later an autonomous attacker was running commands on the CI runner.

Wiz Research published the write-up on 17 August. Their Red Agent — no human in the loop — found a GitHub Actions injection in a public Snowflake repository, exploited it, and lifted a token with read access to Snowflake's internal Jira.

PR 1218 merged 18 June. Live five days. Found and reported 23 June, patched the same day, token rotated on the 24th.

Now the correction, because the headline in circulation has it backwards.

This is not an Autofix bug. The merge record shows Copilot Autofix's documented contribution to that PR was a separate fix to jira_close.yml. The injection sits in jira_issue.yml, where an issue title was interpolated straight into a shell run: block, replacing a safer env-plus-jq pattern. Wiz's own words: Copilot "was a co-author that checked the merged PR and code change, and identified it as all-clear without noticing the critical vulnerabilities."

The machine did not write the vulnerability. It certified it.

Now the European part.

Directive (EU) 2024/2853 must be in national law by 9 December 2026 — 110 days out. Article 4(1): a product includes software. Article 7(2)(f) weighs "relevant product safety requirements, including safety-relevant cybersecurity requirements" when deciding whether a product was defective. Article 9(1) lets a court order you to disclose relevant evidence once a claim is plausible. Article 10(2)(a): fail to disclose, and defectiveness is presumed. Germany's transposing bill, Drucksache 21/4297, extends this expressly to manufacturers of AI systems.

The reasonable reading is a review miss, fixed inside a day — but what outlived the patch is a record asserting that a security review ran and found nothing.

What I'd do Monday:

1. Treat pull request and review history as evidence with a retention policy, not as CI exhaust. 2. Put a named human beside every agent sign-off, or stop calling it a review. 3. Grep your workflows for github.event fields inside run: blocks. Move them into env. 4. Record which automated checks ran on each merge, and what each one cleared.

Your agents are already filing evidence. Whose name is on it?

#AgenticAI #AIGovernance #AIEngineering #AppSec #Berlin