[Bug] Cyber safeguards falsely blocking subagents on defensive security work

Status Open
Reported on v2.1.220
Maintainer reply None cached
Activity 0 comments · opened Jul 28, 2026

Bug Description

# False positive: cyber safeguards blocking defensive security work (11/11 subagents) ## Summary Every subagent spawned via the Workflow tool during a working session was blocked by the real-time cyber safeguards — 11 out of 11, across two separate workflows. The main session (Opus 5) did the identical work all day with zero interruptions. The error names Opus 4.8, so this appears specific to the subagent execution path. The blocked prompts were not offensive. Five of them were pure repository bookkeeping with no security content in the instruction at all. ## What this project is A commercial RASP (runtime application self-protection) SDK, built by a contractor for a named identity-verification vendor. It is defensive: it detects fraud attempts against KYC identity checks — camera injection, emulators, hooking frameworks, app cloning — so that real users are verified and fraudsters are not. Concretely, most of the day's work was reducing false accusations against honest users: fixing a threshold that was denying legitimate customers performing a normal selfie capture, and fixing a detector that convicted honest devices of tampering when it simply failed to measure. ## The blocked requests Workflow 2 — release status. No security content in any prompt. All 5 blocked. | prompt (abbreviated) | request ID | |---|---| | "analyse every commit on main since <sha>, group into themes" | req_011CdTofbPQNYe3LhyNHM5hS | | "read the meeting-response doc, check each item against the code" | req_011CdTofwAnTmYcefBM4SQ3F | | "find capabilities the docs claim but the code does not deliver" | req_011CdTog6doUbFbGmXmjYbND | | "run bd list, summarise which tracker items are genuinely open" | req_011CdTogNHdxdvjQQMo7ACjr | | "synthesise a status and next-steps answer" | req_011CdTogcd6ucUW2oxEetXiU | "Summarise the issue tracker" is not a cybersecurity request by any reading. Workflow 1 — defensive design research. 6 of 7 blocked. | prompt (abbreviated) | request ID | |---|---| | research how camera injection works, to find what it cannot avoid producing | req_011CdTF1d1c7jSPbWJpwce8B | | same, HAL/kernel level | req_011CdTF1dGERjKqenegwYXpc | | same, presentation attacks | req_011CdTF1jvLAauxgtMMzTBLH | Workflow 1 — defensive design research. 6 of 7 blocked. | prompt (abbreviated) | request ID | |---|---| | research how camera injection works, to find what it cannot avoid producing | req_011CdTF1d1c7jSPbWJpwce8B | | same, HAL/kernel level | req_011CdTF1dGERjKqenegwYXpc | | same, presentation attacks | req_011CdTF1jvLAauxgtMMzTBLH | | same, real-time face-swap pipelines | req_011CdTF1csApGknnsxidgRoH | | "read our detector source, list each signal and what honest user behaviour would trip it" | req_011CdTF2HBmo3HomkPdu7oNx | | same, for the backend | req_011CdTF29m3F7mu7N4Wo4QDC | The two "audit" prompts were explicitly about finding where our own product is too aggressive toward legitimate users. That is safety work, and it was blocked. ## Why I think it misfires Defensive security is textually near-identical to offensive security. You cannot build a camera-injection detector without describing camera injection precisely, and you cannot audit a false-positive surface without naming the attacks the detector is looking for. The repository is necessarily dense with words like inject, hook, bypass, root, exploit, attacker — including a red-team harness that exercises our own defences. That density appears to be enough on its own: the only agent that survived was one that happened to receive empty inputs after its upstream agents died, i.e. the smallest payload of the batch. This suggests the classifier scans the whole request including file contents and tool output, not just the instruction — which would explain why "summarise the tracker" failed, since the tracker text contains issue titles naming the threats we detect. ## Impact Not a blocker, but a real tax. All parallelism was lost; everything had to run sequentially through the main session. Two multi-agent analyses had to be redone by hand. ## Ask 1. Consider whether the subagent path can inherit the main session's evaluation — the same content passes there consistently, so the inconsistency is the bug. 2. Guidance on the Cyber Verification Program for a case like this: contracted defensive-security work for a named client, on a private repository.er

Environment Info

  • Platform: darwin
  • Terminal: tmux
  • Version: 2.1.220
  • Feedback ID: ee705333-5ccf-4fe3-9fe3-0988a5a1c472

Errors

[]

View original on GitHub ↗