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.
98 rules matched. Showing 24 loaded rules.
Publish rule
CVE-2026-116201: Php Laravel Single Use Nonce Toctou Replaycve-2026-116201-php-laravel-single-use-nonce-toctou-replay

Non-atomic single-use token (nonce) check: a replayed value is rejected with a SELECT (`->count()` / `->exists()`), but the token itself is only INSERTed later through a separate write. Concurrent requests replaying the same SAML assertion all run the SELECT before any sibling request commits its INSERT, so every request passes the guard and mints an authent

by Provallyupdated 2026-10-27Apache-2.0
450 direct45 via packs
downloads
75quality
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-114094: Python Path Validator Missing Dos Drive Prefix Checkcve-2026-114094-python-path-validator-missing-dos-drive-prefix-check

Path $PATH is validated element-by-element after splitting on a path separator, or it is guarded only against leading "/" or "\\" absolute forms before being joined under a filesystem root, and the whole path is never checked for a DOS drive-letter prefix. On Windows, os.path.join(root, "C:/x") discards "root", so a hostile repository/archive entry named "C:

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
87quality
CVE-2026-113707: Rust Async Store Update Missing Terminal State Guardcve-2026-113707-rust-async-store-update-missing-terminal-state-guard

$UPDATE() overwrites the stored entity wholesale under the shared write lock without ever checking that the currently stored entity is not in a terminal (final) state. Terminal states must be immutable: with this blind write-back, a stale or racing caller (e.g. a cancel flow whose own earlier non-terminal check is raced by a completion or a second cancel) ca

by Provallyupdated 2026-10-27Apache-2.0
440 direct44 via packs
downloads
80quality
CVE-2026-112936: Python Sqlite Db Path Symlink Followingcve-2026-112936-python-sqlite-db-path-symlink-following

An attacker-influenceable filesystem path reaches sqlite3.connect() by name. SQLite opens and, with creation semantics, creates whatever the final path component points to at each connect, so a local attacker who can create names in the database directory can plant a symbolic link (redirecting database creation and locking, or splitting mutual exclusion betw

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
87quality
CVE-2026-112934: Python Toctou In Place Record Rewrite Opened By Namecve-2026-112934-python-toctou-in-place-record-rewrite-opened-by-name

$OPEN opens $PATH in write mode ($FLAGS) resolved purely by name and then the descriptor is written, but the open is not anchored to a vetted directory fd (no dir_fd=), is not non-blocking (no O_NONBLOCK, so a planted named pipe stalls the open forever), and the enclosing function never re-checks the descriptor's kernel identity with os.fstat (S_ISREG / st_d

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
83quality
CVE-2026-112914: Python Toctou Hardlink Restore After Rename Asidecve-2026-112914-python-toctou-hardlink-restore-after-rename-aside

This code moves a path aside with os.rename/Path.rename and later restores it by name with os.link without follow_symlinks=False. The original pathname stands empty between the rename-aside and the restore, so a local user with write access to the directory can create their own file at the emptied name (breaking mutual exclusion) or swap a symbolic link in a

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
87quality
CVE-2026-109309: Gin File Served From Unvalidated Struct Fieldcve-2026-109309-gin-file-served-from-unvalidated-struct-field

A file path taken directly from a struct field (data that originates outside this function, e.g. a decoded request or plugin response) is passed to gin's Context.File/Context.FileAttachment without any validation or confinement. gin serves absolute paths as-is and resolves relative paths against the process CWD, so an attacker-controlled Path yields arbitrar

by Provallyupdated 2026-10-27Apache-2.0
450 direct45 via packs
downloads
78quality
CVE-2026-107230: Java Credential Cache Partial Key Collisioncve-2026-107230-java-credential-cache-partial-key-collision

A shared cache of per-login, credential-scoped objects is keyed by plain string concatenation of only some of the login parameters and is published with a non-atomic containsKey/put/get sequence. Two logins that differ in an un-keyed identity-defining field (password, Kerberos service principal/realm, NTLM domain, JAAS login context, canonical-hostname flag,

by Provallyupdated 2026-10-27Apache-2.0
450 direct45 via packs
downloads
83quality
CVE-2026-106500: Unguarded Status Transition Updatecve-2026-106500-unguarded-status-transition-update

This UPDATE re-queues a record by writing its status/state column while qualifying the row by identifier only. The current state is not restricted to terminal values and the number of affected rows is never verified, so a caller who knows the identifier can reset a record that is still queued or actively being processed back to the queued state (duplicate co

by Provallyupdated 2026-10-27Apache-2.0
450 direct45 via packs
downloads
83quality
CVE-2026-105850: Payment Settlement Replay Without Atomic Claimcve-2026-105850-payment-settlement-replay-without-atomic-claim

Order settlement creates the order document directly inside a request-driven payment confirmation flow without an atomic exactly-once claim on the associated transaction. Because the settlement create runs inside a request context (req) after only a payment-provider status check, any replayed or concurrent confirm request that resolves the same client-suppli

by Provallyupdated 2026-10-27Apache-2.0
450 direct45 via packs
downloads
80quality
CVE-2026-105745: Python Pluggy Entrypoints Imported Before Namespace Allowlistcve-2026-105745-python-pluggy-entrypoints-imported-before-namespace-allowlist

pluggy's eager loader load_setuptools_entrypoints() imports every module registered in the entry-point group, executing arbitrary import-time code, and only afterwards is the trusted-namespace allowlist (a startswith() prefix check on the already-imported plugin modules, e.g. plugin_module.__name__.startswith("docling.")) applied. This check-after-use orderi

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
90quality
CVE-2026-105636: Python Ssrf Validate Then Unpinned Fetchcve-2026-105636-python-ssrf-validate-then-unpinned-fetch

Check-then-act SSRF: $URL is validated by $CHECK(...) but then fetched with an unpinned requests.* call. The validator only inspects the hostname at validation time; requests re-resolves DNS when connecting, so an attacker-controlled name can rebind to an internal address after the check (CWE-367), and any 3xx hop issued by the target is never re-validated (

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
81quality
CVE-2026-104973: Webhook Task Py Cwe 918 Cve 2026 104973cve-2026-104973-webhook-task-py-cwe-918-cve-2026-104973

$URL is checked by $VALIDATOR(...) and then passed to requests.$M(...). The validator resolves the hostname itself, but requests performs a second, independent DNS resolution when the connection is opened and is never pinned to the address that was validated. An attacker who controls DNS for the URL host can answer the first lookup with a public IP and the s

by Provallyupdated 2026-10-27Apache-2.0
490 direct49 via packs
downloads
90quality
CVE-2026-104970: Python Django Toctou Existence Guard Then Create Without Atomic Lockcve-2026-104970-python-django-toctou-existence-guard-then-create-without-atomic-lock

TOCTOU race in $FUNC: a $MODEL row is guarded only by a plain, non-atomic existence read ($MODEL.objects.first()/exists()), but the corresponding $MODEL.objects.create() runs outside any transaction.atomic() block and without a select_for_update() row lock. Two concurrent requests can both pass the guard and both create the row, breaking the at-most-one inva

by Provallyupdated 2026-10-27Apache-2.0
540 direct54 via packs
downloads
84quality
CVE-2026-101885: Rust Plugin Manifest Path Join Traversalcve-2026-101885-rust-plugin-manifest-path-join-traversal

A plugin-manifest validator inspects a manifest-supplied path field (e.g. `wasm_path`) but never component-validates its VALUE before that value is combined with trusted base directories via `Path::join` during plugin install/discovery (CVE-2026-101885). `Path::join` lets an absolute component (`/home/u/.bashrc`) replace the trusted base entirely and passes

by Provallyupdated 2026-10-27Apache-2.0
440 direct44 via packs
downloads
87quality
CVE-2026-100713: Php Toctou Symlink Following Write On Customer Homedircve-2026-100713-php-toctou-symlink-following-write-on-customer-homedir

Privileged filesystem mutation (write/chmod/chown/chgrp) on a path derived from a customer-controlled home directory without a containment re-check guarding the flow. The path string is validated only at derivation time; PHP re-resolves the path and follows symlinks when the operation executes, so a local user who controls the home directory can swap in a sy

by Provallyupdated 2026-10-27Apache-2.0
440 direct44 via packs
downloads
87quality
CVE-2026-95629: Java Camel Path Traversal Header To Process Output Argumentcve-2026-95629-java-camel-path-traversal-header-to-process-output-argument

A value read from a message/exchange header flows into a process command argument list without being normalized or confined to a base directory. An attacker who can set the header can make the external tool write (or read) outside the intended directory via an absolute path or ".." segments. Canonicalize the path (Paths.get($p).normalize()) and, when a base

by Provallyupdated 2026-10-27Apache-2.0
450 direct45 via packs
downloads
87quality
CVE-2026-92583: Php Non Atomic Rate Limit Cachecve-2026-92583-php-non-atomic-rate-limit-cache

A rate limit counter is read and updated using a non-atomic read-modify-write cache sequence. Concurrent requests can read identical counter values before writes occur, allowing attackers to bypass rate limiting via a race condition. Use an atomic increment operation instead.

by Provallyupdated 2026-10-27Apache-2.0
440 direct44 via packs
downloads
75quality
CVE-2026-92128: Jenkins Script Security Unlocalized Classpath Toctoucve-2026-92128-jenkins-script-security-unlocalized-classpath-toctou

Classpath entry is checked with ScriptApproval.using(entry) and its URL is loaded directly without localizing remote content to a local temporary file first. An attacker controlling the remote URL can return benign code during verification and malicious code when loaded by the ClassLoader (TOCTOU). Download remote classpath entries locally and verify using S

by Provallyupdated 2026-10-27Apache-2.0
450 direct45 via packs
downloads
80quality
CVE-2026-89430: Go Git Mirror Push To Unvalidated Remote Urlcve-2026-89430-go-git-mirror-push-to-unvalidated-remote-url

An outbound forced mirror push / LFS upload uses a remote address resolved from the stored git remote configuration without re-validating it against the migrations allow/block lists. The lists are only enforced when the mirror (or migration) is created, so a hostname that was allowed at creation time may later resolve to a blocked or internal address: on eve

by Provallyupdated 2026-10-27Apache-2.0
440 direct44 via packs
downloads
87quality
CVE-2026-82543: Python Orm Shared Counter In Memory Read Modify Writecve-2026-82543-python-orm-shared-counter-in-memory-read-modify-write

Non-atomic read-modify-write of a shared counter: $OBJ.$ATTR is incremented or decremented in Python memory and the whole (stale) object is written back with save(). Concurrent request handlers load the same row snapshot, each applies the same arithmetic to its own copy, and every writer persists the same result (lost update, CWE-362), so a pickup/download l

by Provallyupdated 2026-10-27Apache-2.0
540 direct54 via packs
downloads
84quality
CVE-2026-82430: Fts Traversal Pathname Chmod Toctoucve-2026-82430-fts-traversal-pathname-chmod-toctou

Pathname-based permission or ownership operations (chmod, chown, lchown) on FTS traversal entries (fts_path or fts_accpath) are vulnerable to TOCTOU symlink races. An attacker with write access to the traversed directory can replace the entry with a symlink before chmod/chown runs, leading to unauthorized modification of arbitrary files. Instead, open the fi

by Provallyupdated 2026-10-27Apache-2.0
440 direct44 via packs
downloads
74quality
CVE-2026-78422: Polkit Unix Process Unsigned Uidcve-2026-78422-polkit-unix-process-unsigned-uid

Polkit's `unix-process` subject specification requires the `uid` field to be a signed 32-bit integer (`i32`, D-Bus type `i`). Passing an unsigned integer or converting `uid` without casting to `i32` causes Polkit to silently discard the UID and fall back to a racy `/proc` PID lookup, enabling PID reuse authorization bypasses (CVE-2026-78422).

by Provallyupdated 2026-09-02Apache-2.0
1.4K0 direct1.4K via packs
downloads
73quality
24 of 98 loaded