Can encoded instructions turn AI-agent skills into security exploits?
Yes, in a controlled benchmark: some models decoded and followed malicious payloads hidden in third-party skill files. Attack rates fell sharply with the original longer files, and the work does not demonstrate a live breach.
The short version
- What happened
- The study transformed 48 contextual injections into encoded payloads across 139 injection-task pairs and tested eight models.
- Who it affects
- People installing third-party agent skills should treat them like software with permissions, not harmless prompt templates.
- What remains unproven
- The paper is an unreviewed benchmark study and does not document a live breach.
Keep in mind
The paper is an unreviewed benchmark study and does not document a live breach.
Primary tests used shortened, rewritten skills; layered attack rates fell sharply with original longer files.
Only 139 injection-task pairs, eight models and particular scanner configurations were evaluated.
An automated model judged several metrics, and API refusals confound some provider comparisons.
Production permission checks, sandboxes and organisational controls were not the outcome under test.
Source analysis · 1 linked source. Primary analysed source date: 13 October 2026.
Read the full report · 6 min The evidence, methods, implications and limitations
The answer: an agent may decode untrusted text and mistake it for authority
Researchers hid malicious instructions inside third-party skill files using simple Caesar encoding or a layered scheme that pointed agents to a decryption tool. Some models decoded the payload and then carried out the requested action. The highest attack-success rates in the primary shortened-skill tests were 47.5% for Caesar encoding and 40.3% for layered encryption.
This is not evidence that a public skill marketplace has been breached. The experiment ran a benchmark in controlled environments, judged model traces automatically and rewrote target skills to be shorter. When original longer files were used, several models engaged with layered payloads far less often.
The security lesson is still concrete. Decoding content is a data-processing step; it should not convert that content into trusted instructions. Agent runtimes need to preserve provenance and permissions after transformation, so text recovered from an untrusted file remains untrusted even when readable.[1]
The benchmark separated recovery from action
The authors used the contextual-injection portion of Skill-Inject: 48 attacker instructions paired with legitimate user tasks across 23 target skills, producing 139 injection-task pairs. They preserved the user tasks, encoded each attack instruction and inserted the payload into the associated skill.
A Caesar variant shifted letters. A layered variant hid a request to decrypt ciphertext and used AES-256-CBC, ChaCha20-Poly1305 or XSalsa20-Poly1305. The scripts returned plaintext only; they did not execute it. The agent had to make two choices: recover the instruction and obey it.
The study measured legitimate task completion, attempts to decode, successful recovery, attempts to act, final attack success and conditional success after recovery. This decomposition matters because a model can decode a payload while refusing it, or fail before the instruction becomes readable.[1]
Eight models produced very different outcomes
Tests covered four open models—Gemma-4-31B, Gemma-4-26B-A4B, Muse-Glimmer-30B and Qwen3.8-27B—plus GPT-6-Luna, GPT-6-Sol, Claude-Haiku-5.5 and Claude-Sonnet-5.5. Open models ran locally on one NVIDIA H200; closed models used provider APIs.
For Caesar injection, Muse-Glimmer-30B decoded 84.2% of payloads and completed the attack in 47.5% of all cases. Qwen3.8-27B decoded 78.4% but attacked in 5.8%, showing that recovery and compliance were distinct. Claude-Haiku-5.5 decoded 55.4% yet attacked in 1.4%.
For layered AES, GPT-6-Sol recovered 94.2% of full instructions and attacked in 29.5%; Muse-Glimmer-30B attacked in 36.0%; Gemma-4-31B in 40.3%. Claude-Haiku-5.5 recovered none. A single headline rate would hide large model-family differences.[1]
Shorter skills made the primary result easier to trigger
The main experiments used skill files rewritten with GPT-6-Sol to be shorter and more focused. In original longer skills, layered-decryption attempts fell from 81.3% to 4.3% for Gemma-4-31B, from 48.9% to 17.3% for Gemma-4-26B-A4B and from 100% to 46.8% for Muse-Glimmer-30B.
Qwen3.8-27B still attempted decoding often with longer files, but full-instruction recovery fell from 38.8% to 0.7%. Clean-task completion did not move uniformly: shortening reduced it by seven points for one model, left another unchanged and increased it by eight points for a third.
The rewrite altered wording and organisation as well as length. The experiment cannot identify a pure context-length effect, and its highest attack rates should not be projected onto unmodified real skills. It does show that concise, well-attended instructions may amplify malicious content as well as useful guidance.[1]
Existing scanners were not enough in these configurations
The researchers submitted injected files to Cisco AI Skill Scanner and SkillRisk. Tested configurations rarely returned unsafe verdicts. A scanner looking for readable prompt-injection language may miss text that becomes dangerous only after an agent decodes it.
That result is bounded. It covers particular versions, settings and payloads, not every scanner. An unsafe verdict may also reflect another feature rather than the encoded instruction. The paper does not compare false positives across a representative clean-skill collection.
Pre-install scanning is one layer, not the control boundary. Runtime monitoring should check decoded outputs, block privilege escalation and require explicit approval for sensitive actions. Sandboxes, least-privilege credentials and network restrictions can limit consequences even when the model accepts an injected instruction.[1]
What developers and users should do
A skill is supply-chain code expressed partly as natural language. Installing one should involve provenance, publisher identity, version pinning, review of executable resources and a clear description of requested permissions. Users should not assume that a tidy manifest makes the underlying files harmless.
Platforms should label content by origin throughout transformations. If a skill asks an agent to decode text, the result should remain data unless a trusted policy authorises it. Tool calls should be checked against the user's task and the skill's declared purpose, not merely against the latest readable sentence.
Organisations should test the exact agent harness and permissions they deploy. A model that refuses in chat may act differently when skills, files and tools are available. Red teams should test layered transformations, while administrators restrict tools, filesystem reach, secrets and outbound connections.[1]
Limits and what would change the assessment
The benchmark contains 139 pairs and limited skill types. GPT-6-Luna judged primary metrics, and automated grading can misclassify ambiguous traces. API refusals interrupted some Claude runs and could block legitimate tasks as well as attacks. The work tests an attacker objective, not a production security boundary.
Confidence would rise with preregistered replication on many naturally occurring unmodified skills. Evaluators should report attack success and false-positive costs, separate model behaviour from runtime controls, and include tasks where malicious action requires real permission checks.
For now, the paper establishes a plausible failure mode under controlled conditions: hidden text can be recovered and obeyed, and some scanners miss it. It does not establish malicious-skill prevalence in the wild or show that encoded text can bypass a well-designed permission boundary.[1]
