Skip to content

Rule Reference

SEC531lintai-ai-securitystableclaude_settingswarn

Claude settings: shared gh api PUT permissions

Claude settings permissions allow `Bash(gh api --method PUT:*)` in a shared committed config

Provider
lintai-ai-security
Surface
claude_settings
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 shared Claude settings for exact GitHub API PUT mutation authority through `permissions.allow`.

Deterministic signal basis

ClaudeSettingsSignals exact string detection for `Bash(gh api --method PUT:*)` inside permissions.allow on parsed Claude settings JSON.

Malicious corpus
claude-settings-gh-api-put-permission
Benign corpus
claude-settings-gh-api-put-permission-specific-safe
structured evidence required remediation reviewed
Canonical note

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

Nearby Signals

Related Rules

SEC531 / CLAUDE-GH-API-PUT-PERMISSION

SEC531 flags shared Claude settings when permissions.allow grants blanket GitHub CLI API mutation authority through gh api --method PUT.

Why It Matters

gh api --method PUT is a generic remote mutation path against GitHub resources. In shared committed settings that is broader than most teams actually need and harder to review than narrower workflow-specific subcommands.

Trigger Shape

  • committed shared Claude settings surface
  • permissions.allow contains the exact token Bash(gh api --method PUT:*)

Safer Example

json
{
  "permissions": {
    "allow": ["Bash(gh api --method GET:*)", "Read(*)"]
  }
}