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
claudeCLI viasubprocess.runand perform network requests viaurllib. - 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.pyscript executes theclaudeCLI tool to perform LLM-based adjudication. The execution usessubprocess.runwith a list of arguments (effectivelyshell=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