Explore

Rule Explorer

Search the public rule index by CVE, GHSA, CWE, language, framework, author, or rule slug. Filter by language, framework, severity, confidence, license, and validation status.

Public rules
4797
Downloads
7.4M
Verified
4797
Authors
2
Search the rule indexUse CVE, GHSA, CWE, language, framework, package, or rule slug.
27 rules matched. Showing 24 loaded rules.
Publish rule
CVE-2026-82855: Pulumi Policy Unanchored Urn Sibling Checkcve-2026-82855-pulumi-policy-unanchored-urn-sibling-check

Naive URN prefix matching using split('$')[0] and startsWith can lead to policy validation bypasses due to crafted resource names. Parse URN type hierarchies structurally and enforce property-level value bindings.

by Provallyupdated 2026-09-02Apache-2.0
2760 direct276 via packs
downloads
72quality
CVE-2026-80227: Elixir Sql Unescaped Regex Whitespacecve-2026-80227-elixir-sql-unescaped-regex-whitespace

Unescaped regex escape sequence '\s' in SQL string fragment. In Elixir string literals, '\s' evaluates to a single space character (0x20) instead of the SQL regex whitespace class '\\s'. This causes REGEXP_REPLACE or regex operators to match only literal spaces rather than all whitespace characters.

by Provallyupdated 2026-09-02Apache-2.0
2730 direct273 via packs
downloads
71quality
CVE-2026-75897: Joi Multiple Osd Custom Rule Overwritecve-2026-75897-joi-multiple-osd-custom-rule-overwrite

Multiple `osdCustom` validation rules are applied separately to the same schema instance. In Joi schema extensions, subsequent rules with the same name overwrite earlier rules rather than combining them, causing validation checks to be silently dropped. Consolidate validations into a single rule.

by Provallyupdated 2026-09-02Apache-2.0
2760 direct276 via packs
downloads
74quality
CVE-2026-67602: Phpipam Cache Check Missing Columncve-2026-67602-phpipam-cache-check-missing-column

Cache lookup or write in object fetch method keys cache using only table and value without scoping by query column or method identifier, which can cause cache key collisions across different query fields (e.g. ID vs authentication token).

by Provallyupdated 2026-09-02Apache-2.0
2730 direct273 via packs
downloads
72quality
CVE-2026-59891: Insecure Dict Key Substring Matchcve-2026-59891-insecure-dict-key-substring-match

Using a substring match to find a dictionary key can lead to insecure matching (e.g., when checking hostnames, URLs or registry names), allowing an attacker to spoof configurations by registering a similar name (like an overlapping substring). Prefer exact matches (`===`) or proper parsing.

by Provallyupdated 2026-09-02Apache-2.0
2760 direct276 via packs
downloads
70quality
CVE-2026-53583: Inverted Memcmp Match Checkcve-2026-53583-inverted-memcmp-match-check

Inverted `memcmp` comparison: `memcmp` returns 0 when buffers are equal and non-zero when they differ. Using `!!memcmp(...)` to set a match or validation flag treats mismatches as valid and matching data as invalid, which can lead to TLS certificate validation bypass.

by Provallyupdated 2026-09-02Apache-2.0
2730 direct273 via packs
downloads
71quality
CVE-2026-53450: Ipv6 Mapped Ipv4 Misclassificationcve-2026-53450-ipv6-mapped-ipv4-misclassification

The code incorrectly checks for an IPv6 loopback literal (e.g., checking if byte 15 is 1) before checking whether the address is an IPv4-mapped IPv6 address. Mapped IPv4 loopback addresses (like `::ffff:127.0.0.1`) also end with a 1 (from `.1`) and will prematurely match the IPv6 literal check, failing loopback validation. Ensure `IN6_IS_ADDR_V4MAPPED` is ch

by Provallyupdated 2026-09-02Apache-2.0
2730 direct273 via packs
downloads
65quality
CVE-2026-49260: Escapeshellarg File Check Fallbackcve-2026-49260-escapeshellarg-file-check-fallback

Checking an `escapeshellarg` or `escapeshellcmd` escaped string with filesystem functions like `is_executable` or `file_exists` is logically flawed. The escaped string includes shell quote characters, causing the check to fail. If this failed check unexpectedly alters control flow (e.g., falling back to unescaped input), it can result in vulnerabilities like

by Provallyupdated 2026-06-23Apache-2.0
2K0 direct2K via packs
downloads
75quality
CVE-2026-46581: Inset Used For Boolean Option Checkcve-2026-46581-inset-used-for-boolean-option-check

Using `isSet()` to check a boolean configuration option or feature toggle checks parameter presence rather than its boolean value. If the parameter is set to 'false', `isSet()` returns true, leading to improper bypass of security controls. Use `isOptionEnabled()` or an equivalent boolean value accessor instead.

by Provallyupdated 2026-09-02Apache-2.0
2740 direct274 via packs
downloads
69quality
CVE-2026-44985: Overly Broad Exclusion Via Containscve-2026-44985-overly-broad-exclusion-via-contains

Using `strings.Contains` to check an identifier like an Image or Name for exclusion can lead to evasion bypasses, as an attacker can craft names that contain the target substring. Use exact equality (`==`) or `strings.HasPrefix` instead.

by Provallyupdated 2026-06-23Apache-2.0
2K0 direct2K via packs
downloads
65quality
CVE-2026-42009: Dtls Duplicate Sequence Type Checkcve-2026-42009-dtls-duplicate-sequence-type-check

Simultaneously checking sequence number and message type (e.g. handshake type) to identify duplicate packets in a queue loop is unsafe. This pattern ignores duplicate sequence numbers that have mismatched types, leading to unstable packet sorting or Denial of Service (DoS) when invalid duplicated packets are improperly queued. Separate the conditions to chec

by Provallyupdated 2026-06-12Apache-2.0
2.5K0 direct2.5K via packs
downloads
69quality
CVE-2026-35046: Django Orm Lower In Comparisoncve-2026-35046-django-orm-lower-in-comparison

Django ORM expression `Lower(...)` is used in a string membership check (`in` / `not in`). `Lower(...)` returns an ORM expression object rather than a lowercased string, causing comparison against string containers to always fail. Use `key.lower()` instead.

by Provallyupdated 2026-09-02Apache-2.0
2780 direct278 via packs
downloads
72quality
CVE-2026-34451: Ts Path Bypass Incomplete Prefixcve-2026-34451-ts-path-bypass-incomplete-prefix

Validating a path using `startsWith` without ensuring a trailing path separator can allow sandbox bypasses. A path traversal attack could construct a path that resolves to a sibling directory sharing the sandbox directory's name as a prefix (e.g., escaping `/path/memories` to `/path/memories_backup`). Append `path.sep` to the root path and also verify exact

by Provallyupdated 2026-06-23Apache-2.0
2K0 direct2K via packs
downloads
73quality
CVE-2026-34209: Payment Channel Insecure Voucher Comparisoncve-2026-34209-payment-channel-insecure-voucher-comparison

A payment channel voucher amount is checked using `<` against a maximum of spent and settled funds. This may allow an attacker to submit a voucher exactly equal to the settled amount, bypassing the requirement to commit new funds. Establish a dedicated check that ensures the voucher is strictly greater than the settled funds, rather than using a loose ternar

by Provallyupdated 2026-06-12Apache-2.0
2.5K0 direct2.5K via packs
downloads
65quality
CVE-2026-32730: Ast Node Falsy Bypass To Xsscve-2026-32730-ast-node-falsy-bypass-to-xss

Evaluating AST node properties using truthiness checks (e.g., `if (node.text)`) rather than nullish checks (`!= null`) can allow an empty string (`""`) to bypass safety mechanisms. Execution then falsely falls through to evaluate unsafe downstream properties (like `raw` or `html`) on the same node, leading to XSS or logic bypass. Update property checks to us

by Provallyupdated 2026-06-12Apache-2.0
2.5K0 direct2.5K via packs
downloads
73quality
CVE-2026-29055: Django Db Lower In Membership Testcve-2026-29055-django-db-lower-in-membership-test

Django's database expression `Lower(...)` was used in a Python membership test instead of `str.lower()`. `Lower(...)` returns an Expression object, causing membership checks against string collections to always evaluate incorrectly.

by Provallyupdated 2026-09-02Apache-2.0
2780 direct278 via packs
downloads
74quality
CVE-2026-28428: Php Loose Auth Token Comparisoncve-2026-28428-php-loose-auth-token-comparison

Loose equality comparison (`==` or `!=`) used on authentication token or key variable. In PHP, loose comparisons can lead to type juggling issues and authentication bypass. Use strict comparison (`===` or `!==`) or `hash_equals()` instead.

by Provallyupdated 2026-09-02Apache-2.0
2730 direct273 via packs
downloads
76quality
CVE-2026-26275: Rust Matches Macro Variable Bindingcve-2026-26275-rust-matches-macro-variable-binding

Using `matches!` or `assert_matches!` with a simple lowercase identifier as the pattern evaluates to `true` unconditionally (or always passes the assertion). In Rust, lowercase identifiers in patterns act as irrefutable variable bindings, bypassing any intended value comparison. This can lead to severe security vulnerabilities if used for validation. If you

by Provallyupdated 2026-06-12Apache-2.0
2.5K0 direct2.5K via packs
downloads
65quality
CVE-2026-19734: Laravel Eloquent Ungrouped Orwherecve-2026-19734-laravel-eloquent-ungrouped-orwhere

Chaining 'orWhere' with multiple 'where' clauses without closure grouping causes SQL operator precedence issues (AND binds tighter than OR), potentially bypassing tenant scoping or authorization filters.

by Provallyupdated 2026-09-02Apache-2.0
2730 direct273 via packs
downloads
68quality
CVE-2026-4424: Libarchive Rar Lzss Sign Comparecve-2026-4424-libarchive-rar-lzss-sign-compare

A signed/unsigned comparison vulnerability exists when validating the LZSS sliding window size. `(mask + 1)` is implicitly evaluated as a signed integer, which causes security checks against `dictionary_size` to fail if `mask + 1` becomes negative or has representation mismatches. Cast the signed operand to `unsigned int` to fix the issue.

by Provallyupdated 2026-06-12Apache-2.0
2.5K0 direct2.5K via packs
downloads
70quality
CVE-2025-66384: Php Is Uploaded File Precedence Bypasscve-2025-66384-php-is-uploaded-file-precedence-bypass

A logical precedence error allows short-circuiting of `is_uploaded_file` checks. The condition evaluates an `||` operator where the right side contains the `is_uploaded_file` security check. Due to short-circuiting, if the left side of `||` is true, the `is_uploaded_file` check is entirely skipped, allowing an attacker to supply a malicious local or arbitrar

by Provallyupdated 2026-06-12Apache-2.0
2.5K0 direct2.5K via packs
downloads
77quality
CVE-2025-57808: Strncmp Offset Length Auth Bypasscve-2025-57808-strncmp-offset-length-auth-bypass

When comparing an expected token or digest against user-provided input using `strncmp()`, dynamically calculating the comparison length using an input string size minus an offset (e.g., `input.size() - offset`) creates an authentication bypass vulnerability. An attacker can provide a shorter input or empty credentials that match a prefix of the expected toke

by Provallyupdated 2026-06-12Apache-2.0
2.5K0 direct2.5K via packs
downloads
72quality
CVE-2025-24802: Plonky2 Zero Padding Lookup Tablecve-2025-24802-plonky2-zero-padding-lookup-table

Zero-padding lookup table slots implicitly introduces a (0, 0) entry. This undermines the soundness of the zero-knowledge proof by allowing a malicious prover to prove f(0) = 0 for any lookup table. To fix, pad unused slots with a valid lookup table entry (e.g., the first element).

by Provallyupdated 2026-06-12Apache-2.0
2.5K0 direct2.5K via packs
downloads
65quality
24 of 27 loaded