Back to skill

Security audit

Fast Fact-Check

Security checks for vulnerabilities and agentic risk

Overview

This fact-checking skill is coherent and purpose-aligned: it guides bounded web verification and includes a local answer-format validator without hidden persistence or unrelated access.

Installers should expect this skill to use web search for factual questions and, if requested, run its local Node validator on an answer file. Review answers for source quality because the validator checks citation structure, not whether each citation semantically proves the claim.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (2)

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · scripts/check_answer.mjs (reported line 39)May include surrounding context.

js
export function checkAnswer(text) {
  const errors = [];
  if (typeof text !== "string") text = String(text == null ? "" : text);
  text = text.replace(/^/, "").replace(/\r\n?/g, "\n"); // strip BOM; normalize CRLF / lone-CR

  // --- Tier ---
  const tf = field(text, "Tier");

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The answer content, evidence, and source reference are all presented in Chinese, but the file provides no indication that the user requested Chinese or was offered a language choice. This can violate language/locale policy when a skill imposes a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.