Back to skill

Security audit

LGD Badge Verify(LGD 徽章验真器)

Security checks for vulnerabilities and agentic risk

Overview

This verifier can approve fabricated certificates despite promising to confirm legitimate issuance and non-revocation.

Do not use its successful result as proof of certificate authenticity or as the sole basis for supplier approval. Reliable verification needs an issuer-controlled registry, defined revocation enforcement, and strict evidence-hash validation. No malicious intent or destructive behavior was established, but the current security claims are unsupported.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/badge_verify.py
Finding

Self-authored certificates pass verification without issuer authentication

Content
View full analysis

Impact

An unissued or altered certificate can receive a successful verification result. The digest establishes only internal consistency, not issuer authorization, allowing a dishonest supplier to misrepresent certification to the recipient.

Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Description-Behavior Mismatch

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

The manifest promises evidence-hash validation and confirmation of issuance and non-revocation, but the implementation checks only hash-field presence and permits successful verification without a ledger. Its ledger lookup also does not explicitly evaluate revocation status, so the advertised supply-chain identity assurance exceeds the implemented checks.

Content

No source excerpt is available for this finding.

Verification can succeed without the ledger confirmation promised by the manifest.

High
Category
Excessive Agency
Confidence
100% confidence
Finding

When --registry is omitted, the ledger check is excluded from the aggregate result, allowing verified=true and a successful exit status based solely on required fields and a self-consistent fingerprint. Because anyone can recompute this unkeyed fingerprint for fabricated certificate data, the result does not establish legitimate issuance or non-revocation despite being presented as successful verification.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · README.md (reported line 9)May include surrounding context.

md
Verify a badge certificate: recompute fingerprint (anti-tamper) + evidence-hash format + registry cross-check (serial exists & not revoked).

**Pain point**: issuance without verification is forgeable — the loop lacked reverse checking and the trust chain broke.

Part of the **LGD moat loop**: Passport (registered) → Evidence chain (evidenced) → Gate (gated) → **Badge (issued/verified)**.

Evidence hash format validation promised by the manifest is not implemented.

Medium
Category
Excessive Agency
Confidence
100% confidence
Finding

The code requires evidence_sha256 to exist but does not validate its type, length, or hexadecimal encoding. A malformed value can pass the integrity checks when included in a matching fingerprint, undermining the explicitly promised evidence-hash format assurance.

Content

No source excerpt is available for this finding.