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
6965
Downloads
12.9M
Verified
6965
Authors
2
Search the rule indexUse CVE, GHSA, CWE, language, framework, package, or rule slug.
1426 rules matched. Showing 24 loaded rules.
Publish rule
CVE-2026-116492: Frappe Whitelisted Phone Lookup Missing Permission Checkcve-2026-116492-frappe-whitelisted-phone-lookup-missing-permission-check

Whitelisted HTTP endpoint $FUNC resolves a CRM record from the caller-controlled parameter $PARAM via $LOOKUP and returns the match without enforcing document read permissions. The lookup runs raw query-builder queries that bypass the Frappe permission engine, and @frappe.whitelist() only requires authentication, so any authenticated user can enumerate Leads

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
86quality
CVE-2026-116178: Python Pydantic Unbounded Multimodal Range Fieldscve-2026-116178-python-pydantic-unbounded-multimodal-range-fields

Pydantic request model $MODEL declares range-geometry fields (offset / start / index / position, length / size) as plain `int` with no `Field(ge=...)` / `Field(gt=...)` constraint. When this schema validates remote request bodies, a client can supply negative offsets or zero/negative lengths that slip past downstream arithmetic bounds checks (Python negative

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
87quality
CVE-2026-116177: Python Pil Decompression Bomb Guard Disabledcve-2026-116177-python-pil-decompression-bomb-guard-disabled

Pillow's decompression-bomb guard is globally disabled by assigning None to Image.MAX_IMAGE_PIXELS. This mutates process-wide PIL state (typically as a module-import side effect), so every later decode of untrusted image bytes -- e.g. Image.open(<request bytes>).load() on media submitted to an API endpoint -- allocates the full raster declared in the image h

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
78quality
CVE-2026-116175: Python Audio Decode Unlimited Durationcve-2026-116175-python-audio-decode-unlimited-duration

Unbounded audio decode at the untrusted-media ingestion boundary: $FUNC is called inside a MediaIO subclass (the layer that converts attacker-controlled request media, e.g. base64 input_audio or audio_url, into in-memory arrays) with max_duration_s unset (defaults to None = unlimited) or explicitly None. A small compressed payload can expand into gigabytes o

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
87quality
CVE-2026-116071: Weak Password Key Derivation Single Fast Hash Encryptioncve-2026-116071-weak-password-key-derivation-single-fast-hash-encryption

An encryption key is derived from a secret with a single fast, unsalted hash ($HASH) and the digest is fed straight into a symmetric cipher to encrypt data. Ciphertext produced this way can be brute-forced fully offline at GPU speed (no per-ciphertext KDF work and no salt, so precomputed tables and cross-backup key reuse apply), which exposes every password-

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
86quality
CVE-2026-115924: Python Unvalidated Model Name In Unpinned Downloadcve-2026-115924-python-unvalidated-model-name-in-unpinned-download

A model/asset name read from caller-supplied $KWARGS is interpolated into a downloaded asset's URL/filename and fetched with no integrity check (hash argument is None). A crafted name can carry path-traversal ("../") and URL-fragment ("#") syntax that steers the local write path and the fetched URL independently, letting an unauthenticated caller plant attac

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
87quality
CVE-2026-115914: Multimodal Zero Sum Pixel Rejectioncve-2026-115914-multimodal-zero-sum-pixel-rejection

Multimodal input validator rejects a present tensor because its reduced pixel sum is zero ($COND). Normalized image pixels can legitimately sum to exactly 0 (e.g. an image that is half black and half white under Normalize(0.5, 0.5)), so this shortcut discards a legal input, makes embed_multimodal() return no embeddings for an encoder step that still carries

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
85quality
CVE-2026-115913: Python Pytorch Attention Probability Retained On Modulecve-2026-115913-python-pytorch-attention-probability-retained-on-module

An attention probability tensor (the softmax output over the O(T^2) score positions) computed during a forward pass is stored on the module itself (`self.$ATTR = ...`). nn.Module instances are long-lived and are shared across requests in an inference server, so this input-sized tensor is retained after the request finishes and sits outside per-request memory

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
84quality
CVE-2026-115912: Python Shared Memory Deserialization Unauthenticated Handlecve-2026-115912-python-shared-memory-deserialization-unauthenticated-handle

Bytes read from shared memory at an externally supplied handle (address/monotonic_id) are passed to deserialization without verifying an authenticated signature for the handle. A caller who controls the handle can point the reader at attacker-chosen bytes inside the shared segment; those bytes reach deserialize()/pickle.loads() and give arbitrary Python code

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
87quality
CVE-2026-115910: Python Oidc Nonce Accepted On Global Existence Onlycve-2026-115910-python-oidc-nonce-accepted-on-global-existence-only

OIDC nonce validation passes whenever *some* stored nonce record exists: the token's `nonce` claim is looked up in shared nonce storage ($NONCE_OBJ = $STORE.get_nonce($NONCE)) and accepted on mere existence (`if $NONCE_OBJ:`). The presented nonce is never compared against the nonce bound to the browser session / authorization state that initiated this login,

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
83quality
CVE-2026-115877: Http Header Value Screen Rejects Nul But Not Cr Lfcve-2026-115877-http-header-value-screen-rejects-nul-but-not-cr-lf

This HTTP header-value screen rejects NUL bytes but accepts bare CR or LF bytes in $DATA. A parser that splits header lines only on CRLF keeps a bare CR/LF inside the value, while lenient front-end proxies treat that byte as a line terminator; the framing disagreement lets a hidden header such as Content-Length stay folded into the value and smuggle or re-fr

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
87quality
CVE-2026-115810: Python Ssrf Raw Requests Fetch Of External Data Urlcve-2026-115810-python-ssrf-raw-requests-fetch-of-external-data-url

Outbound HTTP request made with the raw requests library using a URL derived from externally supplied data (parsed import document or a URL field read out of a data structure). This bypasses the application's centralized SSRF-hardened request wrapper, letting an authenticated attacker force the server to issue requests to arbitrary internal or external hosts

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
90quality
CVE-2026-115778: Python Unbounded Network Receive Buffercve-2026-115778-python-unbounded-network-receive-buffer

$FUNC appends network-received data to the per-connection buffer self.$BUF without any length cap. A peer can withhold the protocol end-of-record terminator (e.g. Telnet IAC SE) while continuing to send bytes, so the persistent buffer grows without bound across receive calls and exhausts process memory, terminating every service hosted in the process. Cap th

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
84quality
CVE-2026-115776: Python Twisted Protocol Unbounded Receive Buffercve-2026-115776-python-twisted-protocol-unbounded-receive-buffer

$C.dataReceived retains the unterminated tail of received network data in a persistent buffer ($BUF = $LINES.pop()) with no maximum line length, so a remote peer that never sends the line delimiter grows the per-connection buffer without bound, exhausting memory/CPU of the shared process before any authentication (remote unauthenticated denial of service). B

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
83quality
CVE-2026-115727: Python Flask Werkzeug Debug Enabled Rcecve-2026-115727-python-flask-werkzeug-debug-enabled-rce

The development server is started with the interactive Werkzeug debugger enabled (debug=True / use_debugger=True / evalex=True). Flask wraps the WSGI app in DebuggedApplication, which serves an evalex Python console on every unhandled traceback and at /console. The debugger PIN is derived from machine-local, guessable values (username, flask module path, NIC

by Provallyupdated 2026-10-27Apache-2.0
540 direct54 via packs
downloads
81quality
CVE-2026-115580: Python Pypdf Unbounded Standard Xref Entry Countcve-2026-115580-python-pypdf-unbounded-standard-xref-entry-count

A count parsed from the attacker-supplied stream ($SIZE, read straight from a raw parse call such as read_object) is used directly as the bound of the `while $CNT < $SIZE` entry-parsing loop without being validated against the actual size of the stream. A crafted file can declare a subsection count far larger than the file can hold (a valid xref entry is 20

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
80quality
CVE-2026-115354: Python Path Traversal Unconfined Os Path Join Opencve-2026-115354-python-path-traversal-unconfined-os-path-join-open

Unconfined path construction before a file read: a dynamic path segment $COMP is joined onto a base directory with os.path.join() and the result is opened without os.path.realpath() canonicalization and without a containment check. os.path.join() silently discards the base directory when $COMP is absolute, and os.path.normpath() only collapses ".." segments

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
83quality
CVE-2026-115353: Python Path Traversal Uncontained Join Opencve-2026-115353-python-path-traversal-uncontained-join-open

Path traversal (CWE-22): a file path is built with os.path.join($BASE, $P) and passed to open() without proving the resolved target stays inside $BASE. os.path.join silently discards $BASE when $P is absolute, and os.path.normpath only collapses "../" lexically, so an attacker-controlled $P can read any file readable by the process. Reject absolute arguments

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
83quality
CVE-2026-115329: Python Drf Get Object Override Bypasses Get Queryset Scopingcve-2026-115329-python-drf-get-object-override-bypasses-get-queryset-scoping

get_object() in class $VIEW fetches the object with `self.queryset.get(...)` (the raw class-level queryset attribute) instead of `self.get_queryset()`. This bypasses the queryset hook where tenant/organization scoping and filter_queryset() are applied, and — because get_object() is overridden — DRF's default check_object_permissions() never runs. Any authent

by Provallyupdated 2026-10-27Apache-2.0
540 direct54 via packs
downloads
87quality
CVE-2026-115324: Sql Injection Unescaped Quoted Interpolation Executed Statementcve-2026-115324-sql-injection-unescaped-quoted-interpolation-executed-statement

SQL is assembled by interpolating data ($X) directly inside single-quoted SQL string literals and executed via the Databricks statement-execution API without bind parameters. A crafted memory text, metadata value, or record ID containing a single quote terminates the SQL literal and injects arbitrary SQL (CWE-89): a tautology WHERE clause such as "' OR '1'='

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
90quality
CVE-2026-114664: Sql Injection Pypika Get Sql Unescaped Backslashcve-2026-114664-sql-injection-pypika-get-sql-unescaped-backslash

Collected pypika filter criteria are rendered to a raw SQL text fragment with $CRITERION.get_sql(with_namespace=True, quote_char=...) and interpolated into the engine's WHERE clause. pypika's ValueWrapper only escapes quote characters, not backslashes, and MariaDB treats '\' as an escape character inside single-quoted string literals, so a user-controlled fi

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
87quality
CVE-2026-114618: Jwt Aud Claim Validation Conditionally Skippedcve-2026-114618-jwt-aud-claim-validation-conditionally-skipped

JWT audience ('aud') claim validation is enforced only when the configured audience list is non-empty. When the list is empty the 'aud' claim options keep presence-only semantics, so a correctly signed assertion minted for another service (different audience) is accepted and can be exchanged for an access token across a trust boundary (RFC 7523 section 3). F

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
87quality
CVE-2026-114616: Hmac Key Validator Missing Empty Checkcve-2026-114616-hmac-key-validator-missing-empty-check

Key-material validator $CHECK_KEY() rejects malformed key formats (key material containing unsafe PEM/SSH markers) but never rejects empty key material. HMAC with a zero-length key is deterministic and publicly computable, so a secret that resolves to "" or b"" (missing/unset configuration, a JWK {"kty":"oct","k":""}, or a key callable returning "") lets an

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
87quality
CVE-2026-114615: Python Anchored Key Material Marker Guardcve-2026-114615-python-anchored-key-material-marker-guard

Incomplete key-material safety guard: `$KEY.startswith($MARKERS)` rejects asymmetric key markers only at byte 0, while PEM/SSH parsers accept leading whitespace, comment lines, or a UTF-8 BOM before the "-----BEGIN" block. Key bytes carrying such a prefix pass this deny-check and can later be imported as a symmetric (HMAC) key secret, so anyone who knows the

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
79quality
24 of 1426 loaded