alterlab-citation-verifier

Pass

Audited by Gen Agent Trust Hub on Sep 25, 2026

Risk Level: SAFEINDIRECT_PROMPT_INJECTIONCOMMAND_EXECUTIONEXTERNAL_DOWNLOADS
Full Analysis
  • [INDIRECT_PROMPT_INJECTION]: The skill processes user-provided claims and fetches abstracts from external scholarly APIs, both of which are interpolated into prompts for an LLM judge in scripts/claim_faithfulness.py. This creates a surface for indirect prompt injection where malicious content in a claim or an abstract could attempt to influence the faithfulness verdict. However, the risk is limited to the output of that specific check and is mitigated by a fallback heuristic tier that activates if the LLM output is unparseable.
  • Ingestion points: User claims passed via CLI; abstracts fetched from scholarly APIs.
  • Boundary markers: The prompt uses clear labels (CLAIM:, ABSTRACT:) but lacks explicit 'ignore embedded instructions' warnings.
  • Capability inventory: The script can execute the claude CLI via subprocess.run and perform network requests via urllib.
  • Sanitization: Abstracts are JATS-XML stripped and claims are tokenized for a heuristic check, but not specifically sanitized for the LLM prompt beyond length limiting.
  • [COMMAND_EXECUTION]: The scripts/claim_faithfulness.py script executes the claude CLI tool to perform LLM-based adjudication. The execution uses subprocess.run with a list of arguments (effectively shell=False), which prevents shell-based command injection from the user-supplied claims or model identifiers.
  • [EXTERNAL_DOWNLOADS]: The skill queries several well-known public scholarly APIs (api.crossref.org, api.openalex.org, api.semanticscholar.org, and export.arxiv.org) to verify citations. These requests are legitimate, use standard HTTP libraries, and identify the skill via a polite-usage mailto header matching the author's contact information.
Audit Metadata
Risk Level
SAFE
Analyzed
Sep 25, 2026, 02:36 PM