Every CVE Search/ Get API key

CVE-2026-66754

Rouille 0.1.6 - 3.6.2 Reachable Assertion DoS via remove_prefix percent-encoding

8.2 HighPublic exploit

Rouille 0.1.6 through 3.6.2 contains a reachable assertion vulnerability in the Request::remove_prefix function that allows remote unauthenticated attackers to crash the server by sending a crafted percent-encoded URL. Attackers can send a request whose decoded path matches a configured prefix while the raw percent-encoded path does not, causing the assert! to fail and triggering either a 500 error or full process termination depending on the panic configuration.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.56%Up 0.2 points since Jul 29, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.2

Rouille 0.1.6 - 3.6.2 Reachable Assertion DoS via remove_prefix percent-encoding

Rouille 0.1.6 through 3.6.2 contains a reachable assertion vulnerability in the Request::remove_prefix function that allows remote unauthenticated attackers to crash the server by sending a crafted percent-encoded URL. Attackers can send a request whose decoded path matches a configured prefix while the raw percent-encoded path does not, causing the assert! to fail and triggering either a 500 error or full process termination depending on the panic configuration.

Record
CVE-2026-66754
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-617
Updated
2026-11-02
EUVDEUVD-2026-49888 8.2

Rouille 0.1.6 through 3.6.2 contains a reachable assertion vulnerability in the Request::remove_prefix function that allows remote unauthenticated attackers to crash the server by sending a crafted percent-encoded URL. Attackers can send a request whose decoded path matches a configured prefix while the raw percent-encoded path does not, causing the assert! to fail and triggering either a 500 error or full process termination depending on the panic configuration.

Record
EUVD-2026-49888
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-mrg5-7f6c-r28q 8.2

Rouille 0.1.6 through 3.6.2 contains a reachable assertion vulnerability in the Request:...

Rouille 0.1.6 through 3.6.2 contains a reachable assertion vulnerability in the Request::remove_prefix function that allows remote unauthenticated attackers to crash the server by sending a crafted percent-encoded URL. Attackers can send a request whose decoded path matches a configured prefix while the raw percent-encoded path does not, causing the assert! to fail and triggering either a 500 error or full process termination depending on the panic configuration.

Record
GHSA-mrg5-7f6c-r28q
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-617
Updated
2026-11-02
NVD 8.2

Rouille 0.1.6 through 3.6.2 contains a reachable assertion vulnerability in the Request::remove_prefix function that allows remote unauthenticated attackers to crash the server by sending a crafted percent-encoded URL. Attackers can send a request whose decoded path matches a configured prefix while the raw percent-encoded path does not, causing the assert! to fail and triggering either a 500 error or full process termination depending on the panic configuration.

Record
CVE-2026-66754
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Weakness
CWE-617
Updated
2026-11-02
OSV 8.2

Rouille 0.1.6 - 3.6.2 Reachable Assertion DoS via remove_prefix percent-encoding

Rouille 0.1.6 through 3.6.2 contains a reachable assertion vulnerability in the Request::remove_prefix function that allows remote unauthenticated attackers to crash the server by sending a crafted percent-encoded URL. Attackers can send a request whose decoded path matches a configured prefix while the raw percent-encoded path does not, causing the assert! to fail and triggering either a 500 error or full process termination depending on the panic configuration.

Record
CVE-2026-66754
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-617
Updated
2026-11-02
OSVDEBIAN-CVE-2026-66754 8.2

Rouille 0.1.6 through 3.6.2 contains a reachable assertion vulnerability in the Request::remove_prefix function that allows remote unauthenticated attackers to crash the server by sending a crafted percent-encoded URL. Attackers can send a request whose decoded path matches a configured prefix while the raw percent-encoded path does not, causing the assert! to fail and triggering either a 500 error or full process termination depending on the panic configuration.

Record
DEBIAN-CVE-2026-66754
CVSS 4.0
8.2 HighCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Updated
2026-11-02
Show 4 moreShow less
OSVopenSUSE-SU-2026:11527-1 No score

sccache-0.17.0~1-2.1 on GA media

These are all security issues fixed in the sccache-0.17.0~1-2.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:11527-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:21982-1 No score

Security update for sccache

This update for sccache fixes the following issues:

  • CVE-2024-12224: idna: idna accepts Punycode labels that do not produce any non-ASCII when decoded (bsc#1243868).
  • CVE-2026-25541: bytes: integer overflow in 'BytesMut:reserve' can lead to undefined behavior and crashes (bsc#1274146).
  • CVE-2026-25727: time: parsing of user-provided input by the RFC 2822 date parser can lead to stack exhaustion (bsc#1257923).
  • CVE-2026-41676: openssl: Deriver:derive and PkeyCtxRef:derive can overflow short buffers on OpenSSL 1.1.1 (bsc#1270206).
  • CVE-2026-41677: openssl: out-of-bounds read in PEM password callback when returning an oversized length in rust- openssl crate (bsc#1270559).
  • CVE-2026-41678: openssl: incorrect bounds assertion in aes key wrap in rust-openssl crate (bsc#1270693).
  • CVE-2026-41681: openssl: MdCtxRef::digest_final() writes past caller buffer with no length check in rust-openssl crate (bsc#1270736).
  • CVE-2026-41898: openssl: unchecked callback-returned length in PSK and cookie generate trampolines can leak adjacent memory in rust-openssl crate (bsc#1270869).
  • CVE-2026-42327: openssl: arbitrary code execution via specially crafted certificate in rust-openssl crate (bsc#1270512).
  • CVE-2026-44662: openssl: heap buffer overflow when encrypting with AES key-wrap-with-padding in rust-openssl crate (bsc#1270938).
  • CVE-2026-45784: openssl: out-of-bounds write in CipherCtxRef::cipher_update_inplace for AES-KW-PAD ciphers in rust- openssl crate (bsc#1270948).
  • CVE-2026-66746: rouille: HTTP Response Splitting via Unvalidated Response Header Values (bsc#1273881).
  • CVE-2026-66754: rouille: remove_prefix function that allows remote unauthenticated attackers to crash the server by sending a crafted percent-encoded URL (bsc#1273884).
  • CVE-2026-67181: rouille: HTTP Request Smuggling via Transfer-Encoding Desynchronization (bsc#1273886).
  • CVE-2026-67182: rouille: HTTP Request Smuggling Enables Front-End Access Control Bypass (bsc#1273888).
  • CVE-2026-93599: rustls-webpki: panic via empty BIT STRING (bsc#1282211).
  • CVE-2026-93600: rustls-webpki: name constraints URI validation bypass (bsc#1282211).
  • CVE-2026-93601: rustls-webpki: name constraint bypass (bsc#1282211).
  • CVE-2026-93602: rustls-webpki: CRL revocation check bypass (bsc#1282211).

Changes for sccache:

Update to version 0.18.0~2:

  • Add experimental concurrent cache support
  • chore: Remove dependency status badge (#2856)
  • Don't hand the jobserver to children that can't use it
  • dist: refuse to trim rlibs from crates that also emit a cdylib
  • fix(cache): avoid duplicate multilevel reads
  • Strip basedirs from the compiler arguments too
  • tests/integration: replace MinIO with Silo
  • ci: dump sccache logs on integration failures
  • multilevel: a chain with any writable level is writable
  • Fix parsing of #line directives
  • Release 0.18.0
  • daemonize: use an allow-list approach to inherited FDs
  • gcc, clang: make the assembler part of the cache key
  • support cl.exe /openmp:llvm
  • support all current /fsanitize*, /fsanitize-coverage*, and /fno-sanitize* args
  • support MSVC /feature argument
  • msvc: support lots of flags (#2832)
  • Update shlex dependency to version 2 (#2836)
  • gcc: mark flags as TooHard if need to cache something else (#2833)
  • clang: support more CLI options (#2834)
  • msvc: support arm64EC and fastfail flags (#2830)
  • chore: fix typo in comment (#2829)
  • nvcc: accept the --diag-error/--diag-suppress/--diag-warn family (#2816)
  • cache: allow skipping capability checks (#2822)
  • Bump opendal to 0.58.1 and fix fallout (fixes local GCS cache usage) (#2715)
  • nvcc (Windows): protect escaped quotes in dryrun lines before flattening backslashes (#2811)
  • Add an agent (#2812)
  • Add support for d20bforceinline. (#2807)
  • feat: add Microsoft Entra ID (passwordless) auth for the Azure Blob backend (#2802)
  • Bump MSRV to 1.91.0 (#2793)
  • Fix nvcc dryrun parsing for CUDA 13.3 (#2722)
  • test: Fixed…
Record
openSUSE-SU-2026:21982-1
Updated
2026-11-02
OSVSUSE-SU-2026:23983-1 No score

Security update for sccache

This update for sccache fixes the following issues:

  • CVE-2024-12224: idna: idna accepts Punycode labels that do not produce any non-ASCII when decoded (bsc#1243868).
  • CVE-2026-25541: bytes: integer overflow in 'BytesMut:reserve' can lead to undefined behavior and crashes (bsc#1274146).
  • CVE-2026-25727: time: parsing of user-provided input by the RFC 2822 date parser can lead to stack exhaustion (bsc#1257923).
  • CVE-2026-41676: openssl: Deriver:derive and PkeyCtxRef:derive can overflow short buffers on OpenSSL 1.1.1 (bsc#1270206).
  • CVE-2026-41677: openssl: out-of-bounds read in PEM password callback when returning an oversized length in rust- openssl crate (bsc#1270559).
  • CVE-2026-41678: openssl: incorrect bounds assertion in aes key wrap in rust-openssl crate (bsc#1270693).
  • CVE-2026-41681: openssl: MdCtxRef::digest_final() writes past caller buffer with no length check in rust-openssl crate (bsc#1270736).
  • CVE-2026-41898: openssl: unchecked callback-returned length in PSK and cookie generate trampolines can leak adjacent memory in rust-openssl crate (bsc#1270869).
  • CVE-2026-42327: openssl: arbitrary code execution via specially crafted certificate in rust-openssl crate (bsc#1270512).
  • CVE-2026-44662: openssl: heap buffer overflow when encrypting with AES key-wrap-with-padding in rust-openssl crate (bsc#1270938).
  • CVE-2026-45784: openssl: out-of-bounds write in CipherCtxRef::cipher_update_inplace for AES-KW-PAD ciphers in rust- openssl crate (bsc#1270948).
  • CVE-2026-66746: rouille: HTTP Response Splitting via Unvalidated Response Header Values (bsc#1273881).
  • CVE-2026-66754: rouille: remove_prefix function that allows remote unauthenticated attackers to crash the server by sending a crafted percent-encoded URL (bsc#1273884).
  • CVE-2026-67181: rouille: HTTP Request Smuggling via Transfer-Encoding Desynchronization (bsc#1273886).
  • CVE-2026-67182: rouille: HTTP Request Smuggling Enables Front-End Access Control Bypass (bsc#1273888).
  • CVE-2026-93599: rustls-webpki: panic via empty BIT STRING (bsc#1282211).
  • CVE-2026-93600: rustls-webpki: name constraints URI validation bypass (bsc#1282211).
  • CVE-2026-93601: rustls-webpki: name constraint bypass (bsc#1282211).
  • CVE-2026-93602: rustls-webpki: CRL revocation check bypass (bsc#1282211).

Changes for sccache:

Update to version 0.18.0~2:

  • Add experimental concurrent cache support
  • chore: Remove dependency status badge (#2856)
  • Don't hand the jobserver to children that can't use it
  • dist: refuse to trim rlibs from crates that also emit a cdylib
  • fix(cache): avoid duplicate multilevel reads
  • Strip basedirs from the compiler arguments too
  • tests/integration: replace MinIO with Silo
  • ci: dump sccache logs on integration failures
  • multilevel: a chain with any writable level is writable
  • Fix parsing of #line directives
  • Release 0.18.0
  • daemonize: use an allow-list approach to inherited FDs
  • gcc, clang: make the assembler part of the cache key
  • support cl.exe /openmp:llvm
  • support all current /fsanitize*, /fsanitize-coverage*, and /fno-sanitize* args
  • support MSVC /feature argument
  • msvc: support lots of flags (#2832)
  • Update shlex dependency to version 2 (#2836)
  • gcc: mark flags as TooHard if need to cache something else (#2833)
  • clang: support more CLI options (#2834)
  • msvc: support arm64EC and fastfail flags (#2830)
  • chore: fix typo in comment (#2829)
  • nvcc: accept the --diag-error/--diag-suppress/--diag-warn family (#2816)
  • cache: allow skipping capability checks (#2822)
  • Bump opendal to 0.58.1 and fix fallout (fixes local GCS cache usage) (#2715)
  • nvcc (Windows): protect escaped quotes in dryrun lines before flattening backslashes (#2811)
  • Add an agent (#2812)
  • Add support for d20bforceinline. (#2807)
  • feat: add Microsoft Entra ID (passwordless) auth for the Azure Blob backend (#2802)
  • Bump MSRV to 1.91.0 (#2793)
  • Fix nvcc dryrun parsing for CUDA 13.3 (#2722)
  • test: Fixed…
Record
SUSE-SU-2026:23983-1
Updated
2026-11-02
OSVSUSE-SU-2026:3674-1 No score

Security update for sccache

This update for sccache fixes the following issues:

  • CVE-2026-25541: bytes: integer overflow in 'BytesMut:reserve' can lead to undefined behavior and crashes (bsc#1274146).
  • CVE-2026-66746: rouille: HTTP Response Splitting via Unvalidated Response Header Values (bsc#1273881).
  • CVE-2026-66754: rouille: remove_prefix function that allows remote unauthenticated attackers to crash the server by sending a crafted percent-encoded URL (bsc#1273884).
  • CVE-2026-67181: rouille: HTTP Request Smuggling via Transfer-Encoding Desynchronization (bsc#1273886).
  • CVE-2026-67182: rouille: HTTP Request Smuggling Enables Front-End Access Control Bypass (bsc#1273888).

Changes for sccache:

  • Update to version 0.17.0~1:
  • Add experimental concurrent cache support
  • Release 0.17.0
  • tests: pin libc in the dist test crate
  • doc: clarify server-side outputs and drop 'recommended mode' claim
  • doc: document SCCACHE_CLIENT_SIDE env var
  • doc: document client-side and direct modes in Architecture.md
  • Fix description of Unix socket-based Redis connection
  • server: remove redundant async block in start_compile_task
  • server: simplify bind() request loops with ? instead of manual match arms
  • Add support for arg files in Rust (#2782)
  • feat: support S3 SSE-KMS with AWS-managed and customer-managed keys (#2770)
  • abort compile tasks and associated subprocesses when a client disconnects
  • treat -ivfsoverlay as a preprocessor-only argument
  • gcc: refine response-file tokenizer visibility and whitespace handling
  • integration: convert cmake 4.x modules XFAIL test to a passing test
  • gcc/clang: cache and distribute builds using quoted @response files
  • fix: Fix ToolchainPackager cfg gate to build on ppc64le/s390x
  • fix: make gcc diagnostics color output work the same as for rustc
  • implement client-side mode
  • split handle_compile_response so that the compilation result can be handled separately
  • implement IpcStorage -- Storage backend over IPC
  • extend wire protocol with storage RPCs
  • implement AddAssign for ServerStats and related types
  • add Storage::get_path for direct file access
  • implement get_raw/put_raw on MultiLevelStorage
  • add client_side_mode config flag (SCCACHE_CLIENT_SIDE)
  • Extract new_client_runtime() helper to DRY up client runtime creation
  • Clarify single-threaded runtime rationale comment (grammar)
  • fix: use single-threaded tokio runtime in sccache dist-client
  • fix: use single-threaded tokio runtime in sccache client
  • fix: handle disabled cache backend features in multilevel chain
  • Fix ldd output parsing: remove .exists() check that failed on systems where the symlink source path does not exist locally (e.g. aarch64)
  • Fix cfg guard for PanicToolchainPackager to also cover non-x86_64 Linux architectures (e.g. aarch64)
Record
SUSE-SU-2026:3674-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
rust-rouille
Debian:14
All versions, plus listed versions
3.6.2+20250617+ds-13.6.2+20250617+ds-23.6.2+20250617+ds-3
None known
sccache
SUSE:Linux Enterprise Server 16.0
From an advisory covering 19 CVEs
before 0.18.0~2-160000.1.1
0.18.0~2-160000.1.1
sccache
SUSE:Linux Enterprise Server for SAP applications 16.0
From an advisory covering 19 CVEs
before 0.18.0~2-160000.1.1
0.18.0~2-160000.1.1
sccache
SUSE:Linux Enterprise Module for Development Tools 15 SP7
From an advisory covering 5 CVEs
before 0.17.0~1-150600.10.14.1
0.17.0~1-150600.10.14.1
sccache
SUSE:Linux Enterprise Server 15 SP6-LTSS
From an advisory covering 5 CVEs
before 0.17.0~1-150600.10.14.1
0.17.0~1-150600.10.14.1
sccache
SUSE:Linux Enterprise Server for SAP Applications 15 SP6
From an advisory covering 5 CVEs
before 0.17.0~1-150600.10.14.1
0.17.0~1-150600.10.14.1
sccache
openSUSE:Tumbleweed
From an advisory covering 5 CVEs
before 0.17.0~1-2.1
0.17.0~1-2.1
sccache
openSUSE:Leap 16.0
From an advisory covering 19 CVEs
before 0.18.0~2-160000.1.1
0.18.0~2-160000.1.1

Public exploits

Links only. Every CVE stores no exploit code.

History

History
RecordedChangedSources
affected, facts
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV, PoC in GitHub

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-66754 is a high vulnerability (CVSS 8.2) in Tomaka Rouille, published July 28, 2026. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 0.56%, the 47th percentile. No source names a fixed version.

References

Show 38 moreShow less
This page doesn't list everything

Left out here: the rest of 2 source descriptions. The JSON record has them.

MoveEnter Open