Skip to content

Rule Reference

SEC657lintai-ai-securitythreat-reviewsecuritystableclaude_settingswarn

Claude settings: command hook launchd persistence

Claude settings command hook registers a launchd plist for persistence

Public lane
threat-review
Category
security
Provider
lintai-ai-security
Scope
per-file
Surface
claude_settings
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 Claude settings command hooks for explicit launchd registration or LaunchAgents/LaunchDaemons plist writes.

Deterministic signal basis

ClaudeSettingsSignals command-hook string analysis over committed hook entries with type == command for `launchctl load|bootstrap` or writes to LaunchAgents/LaunchDaemons plist paths.

Malicious corpus
claude-settings-hook-service-persistence
Benign corpus
claude-settings-network-command-safe
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

Launchd registration from a shared Claude hook creates persistent macOS execution outside the repo lifecycle.

What Triggers

SEC657 matches Claude settings command hooks that run launchctl load or launchctl bootstrap, or write plist files into LaunchAgents or LaunchDaemons paths.

False Positives

Bootstrap repos may intentionally manage launchd, but this should not be hidden inside shared committed hooks.

Remediation

Remove launchd persistence from the hook and move plist setup into a separate reviewed administrative path.