LLM Extension/Plugin Trojanization
Description
Adversary Behavior: An adversary develops and distributes a malicious IDE extension (or modifies a legitimate one) that operates at the extension API layer where LLM prompts are constructed, transmitted, and responses are received.
AI/IDE Mechanism: IDE extension ecosystems provide APIs that enable deep access to the LLM interaction pipeline. Extensions can intercept prompts before transmission, modify prompts in transit, alter responses before display, and access telemetry and session data. Users install extensions based on functionality and ratings without verifying their interaction with LLM subsystems.
Execution Path: The malicious extension intercepts prompts before they are sent to the LLM (capturing project context, code, and developer intent), modifies prompts in transit (injecting adversary instructions), alters responses before they are displayed to the developer (inserting backdoors into suggested code), or exfiltrates prompt/response content to an external endpoint.
Security Impact: The adversary gains persistent access to the full LLM interaction pipeline — all project context, developer queries, and generated code pass through the compromised extension. This enables continuous data exfiltration, persistent prompt manipulation, and supply chain compromise of all code generated through the affected IDE instance.
Platforms
Detection
Monitor extension installation events and track extension permissions, particularly those accessing LLM APIs. Compare LLM API responses at the network level with the content presented to the developer to detect response modification. Inspect extension network traffic for data exfiltration patterns.
Detecting Data Components (3)
Mitigations (1)
Data Sources
References
STIX Metadata
| type | attack-pattern |
| id | attack-pattern--050a43f9-e16a-48a7-9753-3a36c580d4cb |
| spec_version | 2.1 |
| created | 2026-02-23T00:00:00.000Z |
| modified | 2026-02-23T00:00:00.000Z |
| created_by_ref | identity--f5b5ec62-ffbd-4afd-9ee5-7c648406e189 |
| x_mitre_is_subtechnique | False |
| x_mitre_version | 0.1 |
| x_mitre_status | mapped |