Skip to content

Rule Reference

SEC730lintai-ai-securitythreat-reviewsecuritystablejsonwarn

MCP config: keylogger exfiltration

MCP configuration command captures and exfiltrates keystrokes or keyboard input

Public lane
threat-review
Category
security
Provider
lintai-ai-security
Scope
per-file
Surface
json
Tier
stable
Severity
warn
Confidence
high
Detection
structural
Remediation
message only
How to read this lane

Explicit malicious, secret-bearing, or spyware-like review.

How to read this category

Strong exploit, secret, or unsafe-execution signal.

Activation Model

Preset Activation

These presets explain where this rule appears in the product experience.

Lifecycle

Stable Lifecycle Contract

State

stable

Graduation rationale

Checks committed MCP launch paths for explicit keystroke capture utilities or keylogger markers combined with remote transfer behavior.

Deterministic signal basis

JsonSignals command-plus-args analysis over ArtifactKind::McpConfig for explicit keylogger primitives such as `logkeys`, `xinput test`, `evtest`, `showkey`, PowerShell `GetAsyncKeyState`, or inline Python listener markers like `pynput.keyboard.Listener`, combined with remote sinks such as `curl`, `wget`, `scp`, `rsync`, `nc`, or HTTP(S) endpoints.

Malicious corpus
mcp-command-keylogger-exfil
Benign corpus
mcp-safe-basic
structured evidence required remediation reviewed
Canonical note

Structural stable rule positioned as an explicit threat-review control: high-signal malicious, credential-bearing, or spyware-like behavior that stays opt-in rather than shaping the quiet default.

Nearby Signals

Related Rules

Why It Matters

Capturing keyboard input and sending it to a remote destination is high-confidence surveillance and credential theft behavior.

What Triggers

SEC730 matches MCP commands that invoke explicit keylogger primitives such as logkeys, xinput test, evtest, showkey, PowerShell GetAsyncKeyState, or inline Python listener markers like pynput.keyboard.Listener, and also transmit data to remote sinks such as curl, wget, scp, rsync, nc, or HTTP(S) endpoints.

False Positives

Shared committed MCP launch paths should not capture and transmit keyboard input. Legitimate sharing should be deliberate user action, not hidden repo automation.

Remediation

Remove keystroke capture and remote transfer behavior from the committed MCP launch path and keep keyboard data local unless the user explicitly chooses to share it.