yara-rule-authoring
19 findings (15 critical, 3 high, 1 low), mainly command injection, obfuscation, policy violation. Most recent scan 2026-02-08.
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
Guides authoring of high-quality YARA-X detection rules for malware identification. Use when writing, reviewing, or optimizing YARA rules. Covers naming conventions, string selection, performance optimization, migration from legacy YARA, and false positive reduction. Triggers on: YARA, YARA-X, malware detection, threat hunting, IOC, signature, crx module, dex module.
- Package
- 16 files, 153 KB
- SKILL.md
- 3637 words, 12+ sections
- Code
- Python (2)
SKILL.md covers: YARA-X Rule Authoring · Core Principles · When to Use · When NOT to Use · YARA-X Overview · Platform Considerations · macOS Malware Detection · JavaScript Detection Decision Tree · Essential Toolkit · Rationalizations to Reject · Decision Trees · Is This String Good Enough?
Findings
CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: #
scripts/atom_analyzer.py:1
# /// scriptCRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[91m
scripts/atom_analyzer.py:455
print(f"\033[91mYARA-X compilation error in {file_path}:\033[0m {e}", file=sys.stderr)CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[0m
scripts/atom_analyzer.py:455
print(f"\033[91mYARA-X compilation error in {file_path}:\033[0m {e}", file=sys.stderr)CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[1m
scripts/atom_analyzer.py:466
print(f"\n\033[1m{rule_name}\033[0m")CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[0m
scripts/atom_analyzer.py:466
print(f"\n\033[1m{rule_name}\033[0m")CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[91m
scripts/atom_analyzer.py:480
color = "\033[91m"CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[93m
scripts/atom_analyzer.py:482
color = "\033[93m"CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[94m
scripts/atom_analyzer.py:484
color = "\033[94m"CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[0m
scripts/atom_analyzer.py:486
print(f" {color}{issue.severity.upper()}\033[0m: {issue.message}")CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: #
scripts/yara_lint.py:1
# /// scriptCRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[91m
scripts/yara_lint.py:547
red = "\033[91m"CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[93m
scripts/yara_lint.py:548
yellow = "\033[93m"CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[94m
scripts/yara_lint.py:549
blue = "\033[94m"CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[0m
scripts/yara_lint.py:550
reset = "\033[0m"CRITICAL INJECTION ATTACK detected by YARA Command Injectionstatic
Detects embedded scripting payloads (JS, VBScript, etc.) in MCP tool descriptions: \033[1m
scripts/yara_lint.py:551
bold = "\033[1m"HIGH XOR operations often used for obfuscation Obfuscationstatic
Pattern detected: xor
scripts/yara_lint.py:424
# xor without rangeHIGH XOR operations often used for obfuscation Obfuscationstatic
Pattern detected: xor
scripts/yara_lint.py:425
if "xor" in modifiers and not any("xor(" in str(m) for m in modifiers):HIGH XOR operations often used for obfuscation Obfuscationstatic
Pattern detected: xor
scripts/yara_lint.py:430
message=f"String {string_id} uses 'xor' without range; generates 255 patterns",LOW Skill does not specify a license Policy Violationstatic
Skill manifest does not include a 'license' field. Specifying a license helps users understand usage terms.
SKILL.md
What is in the package
| File | Kind | Size |
|---|---|---|
SKILL.md | doc | 26 KB |
examples/MAL_Mac_ProtonRAT_Jan25.yar | other | 3.4 KB |
examples/MAL_NPM_SupplyChain_Jan25.yar | other | 5.7 KB |
examples/MAL_Win_Remcos_Jan25.yar | other | 3.3 KB |
examples/SUSP_CRX_SuspiciousPermissions.yar | other | 4.4 KB |
examples/SUSP_JS_Obfuscation_Jan25.yar | other | 6.0 KB |
references/crx-module.md | doc | 6.5 KB |
references/dex-module.md | doc | 10 KB |
references/performance.md | doc | 8.0 KB |
references/strings.md | doc | 11 KB |
references/style-guide.md | doc | 7.9 KB |
references/testing.md | doc | 13 KB |
scripts/atom_analyzer.py | script | 15 KB |
scripts/pyproject.toml | config | 553 B |
scripts/yara_lint.py | script | 19 KB |
workflows/rule-development.md | doc | 13 KB |
External hosts referenced
github.com objective-see.org developer.chrome.com www.elastic.co www.nist.gov www.virustotal.com yara-ci.cloud.virustotal.com yaradbg.dev analysis-report-url.com blog.malwarebytes.com blog.phylum.io stairwell.com www.veracode.com yara.readthedocs.io
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 at commit a50696e20581. 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.
- Llm analyzer. A language model reads the skill and reports intent-level issues the rules cannot express.
- 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://github.com/trailofbits/skills
- Raw scan result: plugins-yara-authoring-skills-yara-rule-authoring-scan.json
- Badge for your README:
 - Request a re-scan