Rule Explorer
All 201 built-in rules. Each maps to a CWE and runs out of the box.
Severity:
Category:
Showing 201 of 201 rules
| Rule | Severity | CWE |
|---|---|---|
js/express-cookie-no-httponly Cookie configuration missing httpOnly flag | medium | CWE-1004 |
js/express-cookie-no-samesite Cookie configuration missing sameSite protection | medium | CWE-352 |
js/express-cookie-no-secure Cookie configuration missing secure flag | medium | CWE-614 |
js/express-direct-response-write XSS via direct response write with user input | high | CWE-79 |
js/express-no-hardcoded-session-secret Hardcoded session secret in express-session configuration | high | CWE-798 |
js/express-session-resave-true express-session configured with resave: true | medium | CWE-384 |
js/express-session-saveuninitialized-true express-session configured with saveUninitialized: true | medium | CWE-359 |
js/hardcoded-crypto-algorithm Hardcoded algorithm string in crypto API call hinders crypto agility | low | CWE-327 |
js/jwt-decode-without-verify JWT decoded without signature verification | high | CWE-347 |
js/jwt-hardcoded-secret JWT signing or verification with a hardcoded secret | high | CWE-798 |
js/jwt-ignore-expiration JWT verification configured to ignore token expiration | high | CWE-613 |
js/jwt-none-algorithm JWT configured to use the 'none' algorithm | high | CWE-347 |
js/jwt-verify-missing-algorithms JWT verification without an explicit algorithms allowlist | high | CWE-347 |
js/no-command-injection Potential command injection via exec/spawn with dynamic input | critical | CWE-78 |
js/no-cors-star CORS misconfiguration allowing all origins | medium | CWE-942 |
js/no-document-write document.write() can lead to XSS vulnerabilities | high | CWE-79 |
js/no-eval Use of eval() allows arbitrary code execution | critical | CWE-95 |
js/no-hardcoded-secret Hardcoded secret or credential detected | high | CWE-798 |
js/no-open-redirect Open redirect via assignment to window.location with user input | medium | CWE-601 |
js/no-path-traversal Potential path traversal via fs operations with user input | high | CWE-22 |
js/no-prototype-pollution Potential prototype pollution via dynamic property assignment | high | CWE-1321 |
js/no-sql-injection Potential SQL injection via string concatenation or template literal | critical | CWE-89 |
js/no-ssrf Potential SSRF via dynamic outbound request URL | high | CWE-918 |
js/no-unsafe-deserialization Unsafe deserialization of untrusted data | critical | CWE-502 |
js/no-unsafe-format-string Template literal with variables in console/logging function may enable log injection | medium | CWE-134 |
js/no-unsafe-regex Potentially catastrophic backtracking regex pattern | medium | CWE-1333 |
js/no-weak-crypto Use of weak cryptographic hash (MD5/SHA1) | medium | CWE-327 |
js/no-xss-innerhtml Assignment to innerHTML may lead to XSS | high | CWE-79 |
js/pq-vulnerable-crypto Use of quantum-vulnerable cryptographic algorithm (RSA/ECDSA/ECDH/DH/Ed25519) | high | CWE-327 |
js/taint-command-injection Untrusted input reaches a command execution sink — OS command injection | critical | CWE-78 |
js/taint-eval Untrusted input reaches eval or Function — arbitrary code execution | critical | CWE-95 |
js/taint-ldap-injection Untrusted input reaches an LDAP operation sink — possible LDAP injection | high | CWE-90 |
js/taint-log-injection Untrusted input reaches a logging sink — possible log injection | medium | CWE-117 |
js/taint-nosql-injection Untrusted input reaches a MongoDB query sink — possible NoSQL injection | high | CWE-943 |
js/taint-sql-injection Untrusted input reaches a SQL execute sink — possible SQL injection | critical | CWE-89 |
js/taint-ssrf Untrusted input reaches an HTTP request sink — possible SSRF | high | CWE-918 |
js/taint-ssti Untrusted input reaches a template rendering sink — possible server-side template injection | critical | CWE-1336 |
js/taint-xpath-injection Untrusted input reaches an XPath evaluation sink — possible XPath injection | high | CWE-643 |
js/taint-xss-innerhtml Untrusted input reaches innerHTML or document.write sink | high | CWE-79 |
js/taint-xxe Untrusted input reaches an XML parser — possible XML External Entity (XXE) injection | high | CWE-611 |
py/csrf-cookie-httponly-disabled CSRF_COOKIE_HTTPONLY disabled in source code | medium | CWE-1004 |
py/csrf-cookie-samesite-disabled CSRF_COOKIE_SAMESITE disabled in source code | medium | CWE-352 |
py/csrf-cookie-secure-disabled CSRF_COOKIE_SECURE disabled in source code | medium | CWE-614 |
py/csrf-exempt View marked csrf_exempt | high | CWE-352 |
py/django-allowed-hosts-wildcard Django ALLOWED_HOSTS allows all hosts | medium | CWE-346 |
py/django-secret-key-hardcoded Django SECRET_KEY hardcoded in source code | high | CWE-798 |
py/flask-debug-mode Flask app.run(debug=True) exposes debugger and reloader in production | high | CWE-489 |
py/flask-secret-key-hardcoded Flask SECRET_KEY hardcoded in source code | high | CWE-798 |
py/hardcoded-crypto-algorithm Hardcoded algorithm string in hashlib.new() hinders crypto agility | low | CWE-327 |
py/jwt-hardcoded-secret JWT signing or verification with a hardcoded secret | high | CWE-798 |
py/jwt-no-verify JWT decoded without signature verification | critical | CWE-347 |
py/no-command-injection Potential command injection via os.system/subprocess with user input | critical | CWE-78 |
py/no-cors-star CORS misconfiguration allowing all origins | medium | CWE-942 |
py/no-debug-true DEBUG = True left enabled — disable in production | medium | CWE-489 |
py/no-eval Use of eval()/exec() allows arbitrary code execution | critical | CWE-95 |
py/no-hardcoded-secret Hardcoded secret or credential detected | high | CWE-798 |
py/no-open-redirect Open redirect via redirect() with user-controlled input | medium | CWE-601 |
py/no-path-traversal Potential path traversal via open() with user input | high | CWE-22 |
py/no-pickle Deserialization of untrusted data via pickle | high | CWE-502 |
py/no-sql-injection Potential SQL injection via string formatting | critical | CWE-89 |
py/no-ssrf Potential SSRF via dynamic outbound request URL | high | CWE-918 |
py/no-weak-crypto Use of weak cryptographic hash (MD5/SHA1) | medium | CWE-327 |
py/no-yaml-load yaml.load() without SafeLoader can execute arbitrary code | high | CWE-502 |
py/pq-vulnerable-crypto Use of quantum-vulnerable cryptographic algorithm (RSA/ECDSA/ECDH/DSA/Ed25519/X25519) | high | CWE-327 |
py/secure-ssl-redirect-disabled Django SECURE_SSL_REDIRECT disabled in source code | medium | CWE-319 |
py/session-cookie-httponly-disabled SESSION_COOKIE_HTTPONLY disabled in source code | medium | CWE-1004 |
py/session-cookie-samesite-disabled SESSION_COOKIE_SAMESITE disabled in source code | medium | CWE-352 |
py/session-cookie-secure-disabled SESSION_COOKIE_SECURE disabled in source code | medium | CWE-614 |
py/taint-command-injection Untrusted input reaches OS command execution sink | critical | CWE-78 |
py/taint-eval Untrusted input reaches eval/exec sink | critical | CWE-95 |
py/taint-ldap-injection Untrusted input reaches LDAP search sink | high | CWE-90 |
py/taint-log-injection Untrusted input reaches a logging sink — possible log injection | medium | CWE-117 |
py/taint-nosql-injection Untrusted input reaches a MongoDB query sink — possible NoSQL injection | high | CWE-943 |
py/taint-pickle-deserialization Untrusted input reaches pickle deserialization sink | critical | CWE-502 |
py/taint-sql-injection Untrusted input reaches DB execute sink | critical | CWE-89 |
py/taint-ssrf Untrusted input reaches outbound HTTP sink (potential SSRF) | high | CWE-918 |
py/taint-ssti Untrusted input reaches template rendering sink (potential SSTI) | critical | CWE-1336 |
py/taint-xpath-injection Untrusted input reaches XPath query sink | high | CWE-643 |
py/taint-xxe Untrusted input reaches an XML parser — possible XML External Entity (XXE) injection | high | CWE-611 |
py/taint-yaml-load Untrusted input reaches unsafe YAML loader | critical | CWE-502 |
py/wtf-csrf-check-default-disabled Flask-WTF default CSRF checks disabled in source code | high | CWE-352 |
py/wtf-csrf-disabled Flask-WTF CSRF protection disabled in source code | high | CWE-352 |
go/cookie-missing-httponly http.Cookie missing HttpOnly flag | medium | CWE-1004 |
go/cookie-missing-secure http.Cookie missing Secure flag | medium | CWE-614 |
go/gin-no-trusted-proxies Gin engine created without SetTrustedProxies configuration | medium | CWE-346 |
go/insecure-tls-skip-verify TLS certificate verification disabled with InsecureSkipVerify | high | CWE-295 |
go/jwt-hardcoded-secret JWT key function uses a hardcoded secret | high | CWE-798 |
go/jwt-no-verify JWT parsed without signature verification | critical | CWE-347 |
go/math-random-used math/rand is not cryptographically secure | medium | CWE-338 |
go/missing-ssl-minversion tls.Config is missing an explicit MinVersion | medium | CWE-326 |
go/net-http-no-timeout http.ListenAndServe without timeout configuration enables slowloris attacks | medium | CWE-400 |
go/no-command-injection Potential command injection via exec.Command with dynamic input | critical | CWE-78 |
go/no-hardcoded-secret Hardcoded secret or credential detected | high | CWE-798 |
go/no-sql-injection Potential SQL injection via string concatenation or fmt.Sprintf | critical | CWE-89 |
go/no-ssrf Potential SSRF via http.Get/http.Post with variable URL | high | CWE-918 |
go/no-unsafe-deserialization Unsafe deserialization via gob or yaml.Unmarshal into interface{}/any | high | CWE-502 |
go/no-weak-crypto Use of weak cryptographic hash (MD5/SHA1) | medium | CWE-327 |
go/pq-vulnerable-crypto Use of quantum-vulnerable cryptographic algorithm (RSA/ECDSA/ECDH/DSA/Ed25519) | high | CWE-327 |
go/taint-command-injection Untrusted input reaches os/exec command execution sink | critical | CWE-78 |
go/taint-ldap-injection Untrusted input reaches LDAP search sink (potential LDAP injection) | high | CWE-90 |
go/taint-log-injection Untrusted input reaches a logging sink — possible log injection | medium | CWE-117 |
go/taint-nosql-injection Untrusted input reaches a MongoDB query sink — possible NoSQL injection | high | CWE-943 |
go/taint-path-traversal Untrusted input reaches a filesystem path sink — possible path traversal | high | CWE-22 |
go/taint-sql-injection Untrusted input reaches database Query/Exec sink | critical | CWE-89 |
go/taint-ssrf Untrusted input reaches outbound net/http sink (potential SSRF) | high | CWE-918 |
go/taint-ssti Untrusted input reaches template parsing sink (potential SSTI) | critical | CWE-1336 |
go/taint-xpath-injection Untrusted input reaches XPath query sink (potential XPath injection) | high | CWE-643 |
rb/no-command-injection Potential command injection via system/exec/spawn or backtick execution | critical | CWE-78 |
rb/no-csrf-skip CSRF protection disabled via skip_before_action | high | CWE-352 |
rb/no-eval Use of eval or similar dynamic code execution | critical | CWE-95 |
rb/no-hardcoded-secret Hardcoded secret or credential detected | high | CWE-798 |
rb/no-html-safe Potential XSS via html_safe or raw() | high | CWE-79 |
rb/no-mass-assignment Mass assignment via permit! allows all parameters | high | CWE-915 |
rb/no-open-redirect Potential open redirect via redirect_to with dynamic argument | high | CWE-601 |
rb/no-path-traversal Potential path traversal via dynamic file path | high | CWE-22 |
rb/no-sql-injection Potential SQL injection via string interpolation in query methods | critical | CWE-89 |
rb/no-ssrf Potential SSRF via dynamic outbound HTTP request URL | high | CWE-918 |
rb/no-unsafe-deserialization Unsafe deserialization via Marshal.load or YAML.load | critical | CWE-502 |
rb/no-weak-crypto Use of weak cryptographic hash (MD5/SHA1) | medium | CWE-327 |
java/hardcoded-crypto-algorithm Hardcoded algorithm string in crypto API call hinders crypto agility | low | CWE-327 |
java/no-command-injection Potential command injection via Runtime.exec or ProcessBuilder with dynamic input | critical | CWE-78 |
java/no-hardcoded-secret Hardcoded secret or credential detected | high | CWE-798 |
java/no-path-traversal Potential path traversal via dynamic file path | high | CWE-22 |
java/no-sql-injection Potential SQL injection via string concatenation in query method | critical | CWE-89 |
java/no-ssrf Potential SSRF via URL or RestTemplate with dynamic input | high | CWE-918 |
java/no-unsafe-deserialization Unsafe deserialization can lead to remote code execution | critical | CWE-502 |
java/no-weak-crypto Use of weak cryptographic algorithm | medium | CWE-327 |
java/no-xss Potential XSS via direct write of user input to HTTP response | high | CWE-79 |
java/no-xxe XML parser created without disabling external entities (XXE) | high | CWE-611 |
java/pq-vulnerable-crypto Use of quantum-vulnerable cryptographic algorithm (RSA/EC/DSA/DH/Ed25519/X25519) | high | CWE-327 |
java/spring-cors-permissive Permissive CORS configuration allows any origin | medium | CWE-942 |
java/spring-csrf-disabled Spring Security CSRF protection is disabled | high | CWE-352 |
java/taint-command-injection Untrusted Java servlet or Spring input reaches command execution sink | critical | CWE-78 |
java/taint-sql-injection Untrusted Java servlet or Spring input reaches SQL query sink | critical | CWE-89 |
java/taint-ssrf Untrusted Java servlet or Spring input reaches outbound URL sink | high | CWE-918 |
java/taint-unsafe-deserialization Untrusted Java servlet or Spring input reaches unsafe deserialization sink | critical | CWE-502 |
php/no-command-injection Potential command injection via shell execution function | critical | CWE-78 |
php/no-eval Use of eval() allows arbitrary code execution | critical | CWE-95 |
php/no-extract Use of extract() can overwrite existing variables | high | CWE-621 |
php/no-file-inclusion Dynamic file inclusion with variable argument enables remote/local file inclusion | critical | CWE-98 |
php/no-hardcoded-secret Hardcoded secret or credential detected | high | CWE-798 |
php/no-preg-eval preg_replace with /e modifier allows arbitrary code execution | critical | CWE-95 |
php/no-sql-injection Potential SQL injection via string interpolation or concatenation | critical | CWE-89 |
php/no-ssrf Potential SSRF via file_get_contents or curl_init with variable URL | high | CWE-918 |
php/no-unserialize Use of unserialize() on untrusted data can lead to object injection | critical | CWE-502 |
php/no-weak-crypto Use of weak cryptographic hash (MD5/SHA1) | medium | CWE-327 |
rs/no-command-injection Potential command injection via Command::new with dynamic input | critical | CWE-78 |
rs/no-hardcoded-secret Hardcoded secret or credential detected | high | CWE-798 |
rs/no-path-traversal Potential path traversal via Path::new or PathBuf::from with dynamic input | medium | CWE-22 |
rs/no-sql-injection Potential SQL injection via format! macro in query argument | critical | CWE-89 |
rs/no-ssrf Potential SSRF via reqwest with dynamic URL | high | CWE-918 |
rs/no-unwrap-in-lib Use of .unwrap() or .expect() can cause panics in production | medium | CWE-248 |
rs/no-weak-hash Use of weak cryptographic hash (MD5/SHA1) | medium | CWE-328 |
rs/pq-vulnerable-crypto Use of quantum-vulnerable cryptographic algorithm (RSA/ECDSA/ECDH/Ed25519/X25519) | high | CWE-327 |
rs/tls-verify-disabled TLS certificate verification disabled with danger_accept_invalid_certs | high | CWE-295 |
rs/transmute-usage Use of std::mem::transmute can cause type confusion and undefined behavior | high | CWE-843 |
rs/unsafe-block Use of unsafe block bypasses Rust memory safety guarantees | medium | CWE-676 |
cs/no-command-injection Potential command injection via Process.Start with dynamic argument | critical | CWE-78 |
cs/no-cors-star Overly permissive CORS configuration | medium | CWE-942 |
cs/no-hardcoded-secret Hardcoded secret or credential detected | high | CWE-798 |
cs/no-ldap-injection Potential LDAP injection via string concatenation in search filter | high | CWE-90 |
cs/no-path-traversal Potential path traversal via dynamic file path | high | CWE-22 |
cs/no-sql-injection Potential SQL injection via string concatenation in database call | critical | CWE-89 |
cs/no-ssrf Potential SSRF via HTTP request with dynamic URL | high | CWE-918 |
cs/no-unsafe-deserialization Use of unsafe deserialization API | critical | CWE-502 |
cs/no-weak-crypto Use of weak cryptographic algorithm | medium | CWE-327 |
cs/no-xxe Potential XXE vulnerability in XML parsing | high | CWE-611 |
swift/no-command-injection Potential command injection via Process or NSTask with dynamic arguments | critical | CWE-78 |
swift/no-eval-js WKWebView evaluateJavaScript with dynamic input enables code injection | critical | CWE-95 |
swift/no-hardcoded-secret Hardcoded secret or credential detected | high | CWE-798 |
swift/no-insecure-keychain Insecure Keychain accessibility level allows access when device is locked | high | CWE-311 |
swift/no-insecure-transport Insecure HTTP URL detected — use HTTPS instead | high | CWE-319 |
swift/no-path-traversal Potential path traversal via FileManager with dynamic path | high | CWE-22 |
swift/no-sql-injection Potential SQL injection via string interpolation in SQLite queries | critical | CWE-89 |
swift/no-ssrf Potential SSRF via URLSession or URL with dynamic input | high | CWE-918 |
swift/no-tls-disabled TLS certificate validation disabled or weakened | high | CWE-295 |
swift/no-weak-crypto Use of weak cryptographic hash (MD5/SHA1) | medium | CWE-327 |
kt/no-command-injection Potential command injection via Runtime.exec or ProcessBuilder with dynamic input | critical | CWE-78 |
kt/no-cors-star Permissive CORS configuration allows any origin | medium | CWE-942 |
kt/no-eval ScriptEngine.eval can execute arbitrary code | critical | CWE-94 |
kt/no-hardcoded-secret Hardcoded secret or credential detected | high | CWE-798 |
kt/no-path-traversal Potential path traversal via dynamic file path | high | CWE-22 |
kt/no-sql-injection Potential SQL injection via string concatenation in query method | critical | CWE-89 |
kt/no-ssrf Potential SSRF via URL or HTTP client with dynamic input | high | CWE-918 |
kt/no-unsafe-deserialization Unsafe deserialization can lead to remote code execution | critical | CWE-502 |
kt/no-weak-crypto Use of weak cryptographic algorithm | medium | CWE-327 |
kt/no-xxe XML parser created without disabling external entities (XXE) | high | CWE-611 |
kt/taint-command-injection Untrusted input from Ktor/Spring handler reaches command execution sink | critical | CWE-78 |
kt/taint-sql-injection Untrusted input from Ktor/Spring handler reaches SQL query sink | critical | CWE-89 |
kt/taint-ssrf Untrusted input from Ktor/Spring handler reaches HTTP/URL sink | high | CWE-918 |
config/nginx-pq-vulnerable-tls Nginx TLS configuration uses quantum-vulnerable protocols or ciphers | medium | CWE-327 |
config/apache-pq-vulnerable-tls Apache TLS configuration uses quantum-vulnerable protocols or ciphers | medium | CWE-327 |
config/haproxy-pq-vulnerable-tls HAProxy TLS configuration uses quantum-vulnerable protocols or ciphers | medium | CWE-327 |
config/dockerfile-insecure-tls-env Dockerfile disables TLS certificate verification via environment variable or insecure command | high | CWE-295 |
manifest/cargo-pq-vulnerable-dep Dependency uses quantum-vulnerable cryptographic algorithm (dev-dependencies not distinguished) | high | CWE-327 |
manifest/npm-pq-vulnerable-dep Dependency uses quantum-vulnerable cryptographic algorithm | high | CWE-327 |
manifest/osv-vulnerable-dep Dependency is affected by a known OSV vulnerability | high | CWE-937 |
manifest/pip-pq-vulnerable-dep Dependency uses quantum-vulnerable cryptographic algorithm | high | CWE-327 |
manifest/pipfile-pq-vulnerable-dep Dependency uses quantum-vulnerable cryptographic algorithm | high | CWE-327 |
manifest/pnpm-pq-vulnerable-dep Dependency uses quantum-vulnerable cryptographic algorithm | high | CWE-327 |
manifest/poetry-pq-vulnerable-dep Dependency uses quantum-vulnerable cryptographic algorithm | high | CWE-327 |
No rules match your filters.