Back to skill

Security audit

Blind Review Sanitizer

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent blind-review anonymizer, but it needs Review because it can expose removed identifiers in logs and declares a wrong, unpinned DOCX dependency.

Use this only in a controlled environment. Replace `docx` with a reviewed, pinned `python-docx` dependency before installation, avoid running it where stdout is captured in shared logs or agent transcripts, choose an output path carefully, and manually inspect the sanitized manuscript and document metadata before submission.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T08 · Insecure Dependencies

Warning
Location
requirements.txt:1
Finding

Incorrect and Unpinned Third-Party Dependency

Content
View full analysis
Remediation
View remediation
``` 2. Select a currently supported release only after reviewing its provenance, release history, and known vulnerabilities. 3. Generate a lock file or hash-verified requirements file so installations use reviewed artifacts: ```text python-docx== \ --hash=sha256: ``` 4. Use `pip install --require-hashes -r requirements.txt` in CI and production workflows. 5. Add an automated test that creates, processes, and reloads a minimal DOCX document to detect dependency or API mismatches. 6. Configure dependency scanning and controlled update review rather than accepting arbitrary future versions. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/main.py:108
Finding

Redacted Personal Information Disclosed Through Console Logs

Content
View full analysis
1: print(f" - {item} (x{count})") else: print(f" - {item}") ``` ### Technical Analysis The Skill is designed to remove identifying information from manuscripts, but it copies exact institutions, email addresses, and self-citation text into `removed_items` and emits those values to standard output. Standard output is frequently retained by terminals, agent transcripts, notebook outputs, CI systems, job schedulers, centralized logging platforms, and workflow orchestration services. Consequently, identifiers removed from the output manuscript can remain available in a less controlled logging channel. The disclosure does not require command injection or arbitrary code execution. It occurs during ordinary processing whenever a supported sensitive value is detected. ### Atta ...[truncated 1252 chars]
Remediation
View remediation
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • 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 (6)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The skill explicitly promotes generating detailed audit trails of redactions, and later examples/logging show removed sensitive values such as names and email addresses being retained in reports. In the context of anonymization for blind review, storing the very identifiers being removed creates a secondary sensitive artifact that can leak author identity if mishandled.

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 · SKILL.md (reported line 687)May include surrounding context.

md
- ❌ **Assuming perfect automation** → Automated tools miss edge cases
  - ✅ Always perform manual verification pass
  
- ❌ **Submitting without verification** → Undetected author info reaches reviewers
  - ✅ Use search function to look for author surnames before submission
  
- ❌ **Losing audit trail** → No record of what was changed for post-review

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

The statement says the tool is optimized for English and Chinese and may perform worse for other languages, which creates a language/locale preference. While it is framed as a limitation, the skill does not provide user opt-in, alternative handling, or earlier guidance for non-English/Chinese users.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
97% confidence
Finding

The dependency is unpinned, so installs may pull different versions over time, including vulnerable or incompatible releases. For a document-processing skill that handles untrusted manuscript files, dependency drift increases supply-chain risk and may expose the environment to known or newly introduced parsing vulnerabilities.

Content

Scanner excerpt · requirements.txt (reported line 1)May include surrounding context.

text
docx

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

This code performs a file write of user-supplied document content via doc.save(output_path). Although the script prints input/output paths, there is no docstring, comment, or user-facing warning near the write operation describing that the tool will generate a modified sanitized copy of the manuscript, which is the kind of disclosure SQP-2 asks for on code files.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The code writes processed manuscript contents to output_path using open(..., 'w'), which creates or overwrites a file. While the script later prints the output path, there is no confirmation prompt or explicit warning at the write site or in surrounding comments/docstrings about this file-writing behavior.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.