Complete list of all detection rules in Vexscan.
| Prefix | Category |
|---|---|
| EXEC-* | Code execution |
| SHELL-* | Shell command execution |
| SCRIPT-* | Shell script patterns |
| OBFUSC-* | Obfuscation/encoding |
| FILE-* | Sensitive file access |
| EXFIL-* | Data exfiltration |
| INJECT-* | Prompt injection |
| AUTH-* | Authority impersonation |
| HIDDEN-* | Hidden instructions |
| CRED-* | Credential access |
| NET-* | Network/crypto |
| MDCODE-* | Markdown code blocks |
| DEP-* | Dependency scanning |
| AST-* | AST-based detection |
| AI-* | AI-powered detection |
| ID | Title | Severity | Files |
|---|---|---|---|
| EXEC-001 | Direct eval() usage | Critical | .js, .ts |
| EXEC-002 | Function constructor | Critical | .js, .ts |
| EXEC-003 | VM code execution | High | .js, .ts |
| EXEC-004 | Python exec/eval | Critical | .py |
| ID | Title | Severity | Files |
|---|---|---|---|
| SHELL-001 | Child process spawn/exec | High | .js, .ts |
| SHELL-002 | Shell execution via execa/shelljs | High | .js, .ts |
| SHELL-003 | Python subprocess execution | High | .py |
| SHELL-004 | Python os.system/popen | High | .py |
| SHELL-005 | Destructured child_process import | High | .js, .ts |
| SHELL-006 | Direct exec/execSync call | High | .js, .ts |
| ID | Title | Severity | Files |
|---|---|---|---|
| SCRIPT-001 | Reverse shell pattern | Critical | .sh, .bash |
| SCRIPT-002 | Curl/wget pipe to shell | Critical | .sh, .bash |
| SCRIPT-003 | Python reverse shell | Critical | .sh, .bash |
| ID | Title | Severity | Files |
|---|---|---|---|
| OBFUSC-001 | Base64 decode (atob) | Medium | .js, .ts |
| OBFUSC-002 | Buffer.from base64 | Medium | .js, .ts |
| OBFUSC-003 | Long base64 string literal | Medium | All |
| OBFUSC-004 | String.fromCharCode obfuscation | Medium | .js, .ts |
| OBFUSC-005 | Hex escape sequence string | Low | .js, .ts, .py |
| OBFUSC-006 | Python base64 decode | Medium | .py |
| OBFUSC-PAYLOAD | Malicious content in encoding | Critical | All |
| ID | Title | Severity | Files |
|---|---|---|---|
| FILE-001 | SSH key access | Critical | All |
| FILE-002 | AWS credentials access | Critical | All |
| FILE-003 | Environment file access | High | All |
| FILE-004 | Browser data access | Critical | All |
| FILE-005 | Keychain/credential store access | Critical | All |
| ID | Title | Severity | Files |
|---|---|---|---|
| EXFIL-001 | Webhook/external POST | Medium | .js, .ts |
| EXFIL-002 | Discord/Slack webhook | High | All |
| ID | Title | Severity | Files |
|---|---|---|---|
| INJECT-001 | Ignore instructions pattern | Critical | .md, .txt, .json, .yaml |
| INJECT-002 | System message injection | Critical | .md, .txt, .json, .yaml |
| INJECT-003 | Role/mode override | High | .md, .txt, .json, .yaml |
| INJECT-004 | Pre-authorization claim | High | .md, .txt, .json, .yaml |
| ID | Title | Severity | Files |
|---|---|---|---|
| AUTH-001 | Admin/developer impersonation | High | .md, .txt, .json, .yaml |
| AUTH-002 | Emergency/urgent override | Medium | .md, .txt, .json, .yaml |
Hidden Instructions (HIDDEN-*)
| ID | Title | Severity | Files |
|---|---|---|---|
| HIDDEN-001 | Zero-width characters | High | All |
| HIDDEN-002 | HTML comment instructions | Medium | .html, .md |
| ID | Title | Severity | Files |
|---|---|---|---|
| CRED-001 | SSH directory access pattern | Critical | All |
| CRED-002 | AWS directory access pattern | Critical | All |
| CRED-003 | Environment variable harvesting | High | .js, .ts |
| CRED-004 | Python environment harvesting | High | .py |
| ID | Title | Severity | Files |
|---|---|---|---|
| NET-001 | Crypto mining indicators | Critical | All |
| NET-002 | Suspicious IP address | Low | All (excludes safe IPs) |
| ID | Title | Severity | Files |
|---|---|---|---|
| MDCODE-001 | Shell commands in markdown | High | .md |
| MDCODE-002 | Eval/exec in markdown code block | High | .md |
| MDCODE-003 | JavaScript eval in markdown | High | .md |
| MDCODE-004 | Curl/wget piped to shell in markdown | Critical | .md |
| ID | Title | Severity | Files |
|---|---|---|---|
| REMOTE-001 | URL to executable script in prompt | High | .md, .txt, .yaml |
| REMOTE-002 | Instruction to download and execute | Critical | .md, .txt, .yaml |
| REMOTE-003 | Instruction to fetch remote script | Critical | .md, .txt, .yaml |
| ID | Title | Severity | Description |
|---|---|---|---|
| DEP-MALICIOUS-001 | Known malicious package | Critical | Package in malicious database |
| DEP-TYPOSQUAT-001 | Potential typosquatting | High | Name similar to popular package |
| DEP-SCRIPT-001 | Suspicious install script | High | Dangerous install script patterns |
| ID | Title | Severity | Technique |
|---|---|---|---|
| AST-EXEC-001 | Computed property access to dangerous function | Critical | window['eval']() |
| AST-EXEC-002 | Variable aliasing of dangerous function | Critical | const e = eval; e() |
| AST-EXEC-003 | String concatenation in property access | Critical | window['ev'+'al']() |
| AST-EXEC-004 | Escape sequence obfuscation | Critical | window["\x65val"]() |
| AST-EXEC-005 | Comma operator indirect call | Critical | (0, eval)() |
| AST-SHELL-001 | Destructured and aliased shell execution | High | {exec: run} = require(...) |
| ID | Title | Severity | Detection |
|---|---|---|---|
| AI-PROMPT_INJECTION | Prompt injection attempt | Critical | Semantic analysis |
| AI-DATA_EXFILTRATION | Data exfiltration pattern | High | Intent detection |
| AI-CREDENTIAL_ACCESS | Credential access attempt | Critical | Context analysis |
| AI-OBFUSCATION | Obfuscated malicious code | High | Pattern recognition |
| AI-SOCIAL_ENGINEERING | Social engineering tactics | High | Language analysis |
Pattern: \beval\s*\(
Examples detected:
eval(code);
eval (userInput);
eval('test');Not detected:
evaluate(x); // Different function nameRemediation: Replace eval() with safer alternatives like JSON.parse() for data or explicit function calls.
Pattern: (?i)(ignore|disregard|forget)\s+(all\s+)?(previous|prior|above|earlier)\s+(instructions|rules|guidelines|constraints)
Examples detected:
ignore all previous instructions
IGNORE PREVIOUS INSTRUCTIONS
disregard prior rules
Forget all earlier guidelines
Remediation: Remove prompt injection attempts from content.
Database includes:
- event-stream@3.3.6 (cryptocurrency theft)
- ua-parser-js@0.7.29/0.8.0/1.0.0 (cryptominer)
- crossenv (typosquat, credential theft)
- colors@1.4.1+ (sabotage)
- node-ipc@10.1.x (protestware)
- 30+ more packages
Remediation: Remove immediately and audit for compromise.
Detected patterns:
window['eval']('code');
globalThis['eval']('code');
global['exec']('cmd');
window['Function']('return this')();Not detected:
obj['foo']; // Not window/global
window['console'].log(); // Not dangerousRemediation: Do not use computed access for dangerous functions.
Pattern: URLs ending in .sh, .py, .ps1, .bat, .exe, .js, .vbs, .rb
Examples detected:
1. Fetch the configuration from https://example.com/setup.py
2. Download https://tools.io/bootstrap.shRemediation: Review the URL and embed code locally instead of fetching remotely.
Pattern: Natural language combining "download/fetch" with "run/execute"
Examples detected:
download the script and run it
ask Claude to download and execute the installerRemediation: Never instruct AI agents to download and execute remote code.
| Level | Description | Response |
|---|---|---|
| Critical | Immediate danger, active attack | Stop and investigate immediately |
| High | Serious security risk | Investigate before deploying |
| Medium | Concerning, needs review | Review during code review |
| Low | Suspicious but may be legitimate | Consider during audits |
| Info | Informational only | Log for awareness |
Community rules can be added. See Contributing Rules.