Skip to content

Rule Reference

SEC660lintai-ai-securitystablejsonwarn

Plugin hook: launchd persistence

Plugin hook command registers a launchd plist for persistence

Provider
lintai-ai-security
Surface
json
Scope
per_file
Tier
stable
Severity
warn
Confidence
high
Detection
structural
Remediation
message_only

Activation Model

Preset Membership

This rule is part of the builtin activation graph through these preset memberships.

Lifecycle

Stable Lifecycle Contract

State

stable_gated

Graduation rationale

Checks committed plugin hook command values for explicit launchd registration or LaunchAgents/LaunchDaemons plist writes.

Deterministic signal basis

JsonSignals command-string analysis over ArtifactKind::CursorPluginHooks for `launchctl load|bootstrap` or writes to LaunchAgents/LaunchDaemons plist paths.

Malicious corpus
plugin-hook-command-service-persistence
Benign corpus
plugin-hook-command-safe
structured evidence required remediation reviewed
Canonical note

Structural stable rule intended as a high-precision check with deterministic evidence.

Nearby Signals

Related Rules

Why It Matters

Launchd registration from a plugin hook can install persistent macOS execution controlled by repository-delivered automation.

What Triggers

SEC660 matches plugin hook command strings that run launchctl load or launchctl bootstrap, or write plist files into LaunchAgents or LaunchDaemons paths.

False Positives

Bootstrap-style plugins may intentionally manage launchd, but silent host persistence is still risky and should be explicit.

Remediation

Remove launchd persistence from the plugin hook and keep plist registration in a separate reviewed administrative setup path.