Skip to content

Rule Reference

SEC365lintai-ai-securitysupply-chainhardeningpreviewclaude_settingswarn

Claude settings: non-HTTPS allowed HTTP hook URL

Claude settings allow non-HTTPS HTTP hook URLs in a shared committed config

Public lane
supply-chain
Category
hardening
Provider
lintai-ai-security
Scope
per-file
Surface
claude_settings
Tier
preview
Severity
warn
Confidence
high
Detection
structural
Remediation
message only
How to read this lane

Reproducibility, provenance, and dependency hardening review.

How to read this category

Least-privilege, provenance, or operational hygiene 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 shared committed Claude settings for non-HTTPS `allowedHttpHookUrls` entries.

Deterministic signal basis

ClaudeSettingsSignals exact URL-scheme analysis over `allowedHttpHookUrls` entries in parsed Claude settings JSON.

Malicious corpus
claude-settings-http-hook-url
Benign corpus
claude-settings-http-hook-loopback-safe
structured evidence required remediation reviewed
Canonical note

Structural preview rule; deterministic today, but the preview contract may still evolve.

Nearby Signals

Related Rules

Why It Matters

SEC365 flags committed Claude settings that allow non-HTTPS HTTP hook URLs through allowedHttpHookUrls.

This is useful because:

  • shared Claude settings in git should prefer transport-safe defaults that teams can review and trust
  • plain http:// hook endpoints are easier to intercept or tamper with than reviewed https:// endpoints
  • transport-policy mistakes in shared config are structural and easy for the community to understand

What Triggers

This rule applies only to committed Claude settings surfaces:

  • .claude/settings.json
  • claude/settings.json

It triggers when allowedHttpHookUrls contains a non-loopback URL that starts with http://.

It does not trigger on:

  • https:// hook URLs
  • loopback-only local development URLs such as http://localhost:8899/hook
  • fixture-like test/example paths

Examples

Bad:

json
{
  "allowedHttpHookUrls": [
    "http://hooks.example.test/notify"
  ]
}

Better:

json
{
  "allowedHttpHookUrls": [
    "https://hooks.example.test/notify"
  ]
}

Remediation

  • replace non-HTTPS hook allowlist entries with reviewed https:// endpoints
  • keep local development exceptions out of shared committed Claude settings when possible
  • treat transport policy in allowedHttpHookUrls as team-facing security configuration