Incomplete referenced artifact analysis
- Category
- analysis-evasion
- Confidence
- 100% confidence
- Finding
Referenced artifact was not completely inspected
- Content
md bash scripts/fixtures/run_fixtures.sh # 离线三档一次跑完,末行自报档数与不合枚数
Security audit
Security checks for vulnerabilities and agentic risk
The skill prepares chart drafts as described, but its checker can report incorrect numbers as verified.
Use this as a drafting aid, and independently check each number against its source cell. Supply the source table and file/line citations; neither PASS nor [待人工] proves completed verification or human approval. Keep confidential documents offline until you understand and authorize the optional parser's data handling. Review installation versions and choose an output path safe to overwrite. The scanner's shell coverage gap was investigated; external-parser behavior remains unverified.
Referenced artifact was not completely inspected
bash scripts/fixtures/run_fixtures.sh # 离线三档一次跑完,末行自报档数与不合枚数
The installation command executes an unpinned npm CLI and installs skill content from an unpinned repository reference. Although this is not itself an MCP server declaration as the finding suggests, compromised or unexpectedly changed upstream releases could execute code or introduce malicious agent instructions.
The recommended command executes an unversioned npm CLI and retrieves skill instructions without an immutable repository revision. The MCP-specific label is inaccurate, but the underlying supply-chain exposure is real: upstream compromise could affect both local code execution and subsequent agent behavior.
The workflow recommends external parsing, including a real local-file parsing test, without clearly explaining which document contents or access URLs leave the machine and who processes them. Asking permission to use the helper or incur costs does not establish informed consent to disclose potentially non-public financial data, especially alongside broad statements that the skill uploads nothing.
Without declared permissions the skill's intent is opaque and cannot be validated.
Page-only citations satisfy the location requirement, but verify_cells only verifies rows identified by file-and-line citations and returns without checking page-only references. The page check merely requires any quoted fragment to occur on the cited page, so authentic but unrelated labels and numbers can be combined into a misleading claim that passes despite the skill's promised exact cell attribution.
Any paragraph containing the report-controlled marker [待人工] bypasses both investment-assertion checks, regardless of what else it contains. Although this exception is explicitly intended to support human review, the checker neither requires that review nor prevents a normal PASS, allowing prohibited recommendations to pass a skill advertised as producing zero investment assertions.
Without --table, the checker skips source-dependent verification but can still return exit code 0 and print a PASS message claiming that numbers were verified against the table. The separate unverifiable notice reduces ambiguity for careful readers, but automated consumers or users relying on the success headline can mistake unverified or fabricated chart claims for validated results.
Data from a source is assigned to a variable that is later passed to a sink, creating a variable-mediated taint flow.
p = Path(a.out)
try:
p.parent.mkdir(parents=True, exist_ok=True)
p.write_text(body, encoding='utf-8')
except OSError as e:
print('取值域故障:写不到 %s(%s)' % (p, e.strerror or '原因未取到'))
return 3