Idea
Extend tachi's detection-pattern coverage to model the three GhostCommit primitives it currently misses: scanner-evading encoded exfiltration, convention files as a trusted-instruction surface, and dormant payloads carried in statically-committed repo files. tachi already covers the multimodal-injection face of the attack well; these are the novel primitives with weak-to-absent ownership.
User Story
As a security engineer using tachi to threat-model an AI coding agent, I want tachi to flag encoded-secret exfiltration, convention-file instruction-poisoning, and dormant payloads committed to the repo, so that GhostCommit-class attacks appear in my threat model instead of slipping past as uncovered primitives.
Detail
Trigger: CSA "GhostCommit" disclosure (2026-07-11). Coverage mapping of tachi's detection-patterns.md skill files against the four GhostCommit sub-techniques found strong coverage of image-borne injection and gaps on the two most novel primitives.
What tachi covers today (no action needed):
- Image-borne / multimodal injection — COVERED.
.claude/skills/tachi-prompt-injection/references/detection-patterns.md:106,133,142 explicitly names "image-based OCR payloads (text rendered as pixels)" and the image-carried-instruction variant. Fires when the architecture describes an LLM/agent Process that ingests images. Maps to OWASP LLM01:2025 + MITRE ATLAS AML.T0051/T0054.
Gaps to close:
- Gap 1 — Encoded-secret exfiltration to evade secret scanners (NOT COVERED — cleanest miss). No agent owns "encode a secret as an integer tuple / base64 / chunked-numeric on the way OUT to defeat a credential-shaped-string scanner." tachi's encoding-evasion patterns are input-side only (smuggling payloads in past a content filter —
tachi-prompt-injection/.../detection-patterns.md:125), and info-disclosure treats secret scanners only as a mitigation (gitleaks/trufflehog, info-disclosure/.../detection-patterns.md:168), never as a control an attacker deliberately evades. Same vocabulary, opposite direction, different evaded control. Home: new pattern in tachi-info-disclosure (and/or tachi-tool-abuse).
- Gap 2 — Convention/config files as a trusted-instruction surface (PARTIAL). Generic indirect-injection covers RAG/retrieved content ("retrieved content … treated as trusted instructions",
tachi-prompt-injection/.../detection-patterns.md:108,118) but never names AGENTS.md / CLAUDE.md / .cursorrules / .github/copilot-instructions.md / README as the specific trust-elevated surface GhostCommit abuses. An analyst must make that mapping themselves. Home: extend prompt-injection Pattern Category 7 (Indirect Injection via Poisoned External Sources).
- Gap 3 — Dormant payload in a statically-committed repo file (PARTIAL). The dormancy concept is well-developed (MAESTRO "Temporal Attacks" / sleeper agents,
.claude/skills/tachi-shared/references/maestro-agentic-patterns-shared.md:60-74; data-poisoning backdoor triggers, tachi-data-poisoning/.../detection-patterns.md:94-96,116) but every instantiation binds it to a model-weights / agent-memory / MCP-tool substrate. A markdown/PNG/config file merged into version control and triggered in a later coding session is not a recognized dormancy substrate; it falls between the data-poisoning, agent-autonomy/MAESTRO, and tool-abuse categories. Home: extend the temporal/dormancy substrate list to include committed repo files.
Proposed Scope (acceptance criteria)
- Add an encoded-exfiltration-to-evade-scanners detection pattern (integer-tuple / base64 / chunked-numeric secret encoding on egress) to
tachi-info-disclosure (and cross-reference from tachi-tool-abuse), with OWASP + CWE mapping.
- Name convention/config files (
AGENTS.md, CLAUDE.md, .cursorrules, .github/copilot-instructions.md, README) as a trusted-instruction surface in prompt-injection Pattern Category 7.
- Extend the temporal/dormancy substrate list to include statically-committed repo files (markdown / image / config) as a deferred-trigger carrier.
- Add fixtures / tests for each new pattern and regenerate affected coverage baselines — mind the byte-identity suite + coverage-% pin ripple that framework/pattern changes have caused historically.
- Cite the CSA GhostCommit disclosure and its MAESTRO mapping in the new pattern references (the paper name-checks MAESTRO as the correct lens — reinforces tachi's source-of-truth positioning).
ICE Score
Impact: 7, Confidence: 7, Effort: 6 = 20
Evidence
Team Observation: coverage mapping of tachi's detection-pattern skill files against the CSA GhostCommit attack class (independent Explore pass, file:line-grounded). Image-borne injection is covered; encoded-secret exfiltration has no owner, convention-file trust is only generically covered, and committed-file dormancy binds only to model/memory/MCP substrates.
Metadata
- Source: Brainstorm
- Priority: P1 (High)
- Date: 2026-07-13
- Status: Validated (PM: APPROVED_WITH_CONCERNS)
Idea
Extend tachi's detection-pattern coverage to model the three GhostCommit primitives it currently misses: scanner-evading encoded exfiltration, convention files as a trusted-instruction surface, and dormant payloads carried in statically-committed repo files. tachi already covers the multimodal-injection face of the attack well; these are the novel primitives with weak-to-absent ownership.
User Story
As a security engineer using tachi to threat-model an AI coding agent, I want tachi to flag encoded-secret exfiltration, convention-file instruction-poisoning, and dormant payloads committed to the repo, so that GhostCommit-class attacks appear in my threat model instead of slipping past as uncovered primitives.
Detail
Trigger: CSA "GhostCommit" disclosure (2026-07-11). Coverage mapping of tachi's
detection-patterns.mdskill files against the four GhostCommit sub-techniques found strong coverage of image-borne injection and gaps on the two most novel primitives.What tachi covers today (no action needed):
.claude/skills/tachi-prompt-injection/references/detection-patterns.md:106,133,142explicitly names "image-based OCR payloads (text rendered as pixels)" and the image-carried-instruction variant. Fires when the architecture describes an LLM/agent Process that ingests images. Maps to OWASP LLM01:2025 + MITRE ATLAS AML.T0051/T0054.Gaps to close:
tachi-prompt-injection/.../detection-patterns.md:125), and info-disclosure treats secret scanners only as a mitigation (gitleaks/trufflehog,info-disclosure/.../detection-patterns.md:168), never as a control an attacker deliberately evades. Same vocabulary, opposite direction, different evaded control. Home: new pattern intachi-info-disclosure(and/ortachi-tool-abuse).tachi-prompt-injection/.../detection-patterns.md:108,118) but never namesAGENTS.md/CLAUDE.md/.cursorrules/.github/copilot-instructions.md/ README as the specific trust-elevated surface GhostCommit abuses. An analyst must make that mapping themselves. Home: extend prompt-injection Pattern Category 7 (Indirect Injection via Poisoned External Sources)..claude/skills/tachi-shared/references/maestro-agentic-patterns-shared.md:60-74; data-poisoning backdoor triggers,tachi-data-poisoning/.../detection-patterns.md:94-96,116) but every instantiation binds it to a model-weights / agent-memory / MCP-tool substrate. A markdown/PNG/config file merged into version control and triggered in a later coding session is not a recognized dormancy substrate; it falls between the data-poisoning, agent-autonomy/MAESTRO, and tool-abuse categories. Home: extend the temporal/dormancy substrate list to include committed repo files.Proposed Scope (acceptance criteria)
tachi-info-disclosure(and cross-reference fromtachi-tool-abuse), with OWASP + CWE mapping.AGENTS.md,CLAUDE.md,.cursorrules,.github/copilot-instructions.md, README) as a trusted-instruction surface in prompt-injection Pattern Category 7.ICE Score
Impact: 7, Confidence: 7, Effort: 6 = 20
Evidence
Team Observation: coverage mapping of tachi's detection-pattern skill files against the CSA GhostCommit attack class (independent Explore pass, file:line-grounded). Image-borne injection is covered; encoded-secret exfiltration has no owner, convention-file trust is only generically covered, and committed-file dormancy binds only to model/memory/MCP substrates.
Metadata