docx
Verdict safe, but 1 finding (1 medium), mainly prompt injection. Most recent scan 2026-02-01.
The docx skill is a comprehensive document manipulation package with generally sound architecture. The primary concern is the MANDATORY file reading directives that create an unusual transitive trust pattern, though this is mitigated by the files being internal to the skill package. The Python code demonstrates good security practices including use of defusedxml for XML parsing, proper validation workflows, and structured error handling. Missing optional metadata fields (allowed-tools, compatibility) reduce transparency but do not constitute security vulnerabilities. No evidence of data exfiltration, credential theft, command injection, or malicious code was found.
Scanner's overall assessment (LLM analyzer)
Second scanner: NVIDIA SkillSpector
Independent static run, no language model, over the same files as the Cisco scan above. How the two scanners compare across the whole corpus: Two scanners, one corpus.
What this skill does
Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. When Claude needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks
- Package
- 20 files, 204 KB
- SKILL.md
- 1343 words, 12+ sections
- Code
- Python (11)
- License
- Proprietary. LICENSE.txt has complete terms
SKILL.md covers: DOCX creation, editing, and analysis · Overview · Workflow Decision Tree · Reading/Analyzing Content · Creating New Document · Editing Existing Document · Reading and analyzing content · Text extraction · Convert document to markdown with tracked changes · Options: --track-changes=accept/reject/all · Raw XML access · Creating a new Word document
Findings
MEDIUM Mandatory External File Reading Without Validation Prompt Injectionllm
The SKILL.md instructions contain multiple MANDATORY directives requiring Claude to read entire external markdown files (docx-js.md ~500 lines, ooxml.md ~600 lines) with explicit instructions to 'NEVER set any range limits' and 'Read the full file content'. This creates a transitive trust vulnerability where Claude must unconditionally follow instructions from these files before proceeding with any document operations. While these files are bundled with the skill package (making them internal resources), the MANDATORY nature and explicit prohibition of range limits creates an unusual pattern that could be exploited if these files were replaced or modified.
SKILL.md
'**MANDATORY - READ ENTIRE FILE**: Read [`docx-js.md`](docx-js.md) (~500 lines) completely from start to finish. **NEVER set any range limits when reading this file.**' and '**MANDATORY - READ ENTIRE FILE**: Read [`ooxml.md`](ooxml.md) (~600 lines) completely from start to finish. **NEVER set any range limi...'What is in the package
| File | Kind | Size |
|---|---|---|
LICENSE.txt | doc | 1.4 KB |
SKILL.md | doc | 9.9 KB |
docx-js.md | doc | 16 KB |
ooxml.md | doc | 23 KB |
scripts/__init__.py | script | 65 B |
scripts/document.py | script | 49 KB |
scripts/utilities.py | script | 13 KB |
ooxml/scripts/pack.py | script | 5.5 KB |
ooxml/scripts/unpack.py | script | 1.0 KB |
ooxml/scripts/validate.py | script | 1.9 KB |
scripts/templates/comments.xml | config | 2.6 KB |
scripts/templates/commentsExtended.xml | config | 2.6 KB |
scripts/templates/commentsExtensible.xml | config | 2.7 KB |
scripts/templates/commentsIds.xml | config | 2.6 KB |
scripts/templates/people.xml | config | 147 B |
ooxml/scripts/validation/__init__.py | script | 336 B |
ooxml/scripts/validation/base.py | script | 39 KB |
ooxml/scripts/validation/docx.py | script | 9.8 KB |
ooxml/scripts/validation/pptx.py | script | 12 KB |
ooxml/scripts/validation/redlining.py | script | 11 KB |
External hosts referenced
schemas.microsoft.com schemas.openxmlformats.org www.anthropic.com www.google.com
Hostnames that appear in the skill's files. Referencing a host is not a finding; compare against the findings above and the skill's stated purpose.
Package contents recorded 2026-10-22. The scan above ran against the version current at scan time; the two can differ if the skill has since been updated.
What we checked
- Static analyzer. Pattern rules over SKILL.md and bundled files: known-bad commands, exfiltration URLs, secrets, obfuscation.
- Behavioral analyzer. Checks what the skill asks the agent to do against what its description claims it does.
- Llm analyzer. A language model reads the skill and reports intent-level issues the rules cannot express.
- Trigger analyzer. Looks for instructions that fire on conditions the user did not ask for.
- Meta analyzer. A second model pass that validates, deduplicates and re-scores the other analyzers' findings.
What we did not check
- Runtime behaviour. The skill was not executed; findings come from reading its files.
- Anything fetched at install or run time, including remote scripts, package dependencies, and URLs the skill tells the agent to open.
- Content the analyzers cannot read: images, binaries, and some non-English text.
- Known scanner bypass classes. See the methodology and limitations page.
Sources
- Repository: https://clawhub.ai/skills/docx
- Raw scan result: docx-scan.json
- Badge for your README:
 - Request a re-scan