criticalCVSS 9.8Vulnerability

CVE-2026-84372

### Summary An improper CRLF neutralization flaw in Predis' pipeline handling on aggregate connections lets an unauthenticated attacker who can influence any pipelined argument — a value **or** a key, e.g. a URL slug used as a cache key — smuggle arbitrary Redis commands into the connection. - On **cluster** connections (`cluster` option, incl. client-side sharding) this is remote command injection: shard-wide `FLUSHDB`, targeted `DEL`/`SET`, same-slot key theft via `GET`, cache poisoning, and possible node/cluster outage. - On **replication** connections (`replication` option) it is a reliable, repeatable denial of service (uncaught fatal error) triggered by any value containing `\r\n`. ### Details When a pipeline is executed over an aggregate connection, `AbstractAggregateConnection::write()` re-parses the already-serialized pipeline buffer with `explode("\r\n")` instead of honoring RESP length prefixes: - https://github.com/predis/predis/blob/v3.2.0/src/Connection/AbstractAggregateConnection.php#L78-L94 - splits the buffer on `\r\n`, ignoring `$<len>` bulk lengths, - rebuilds each chunk via `Command::deserializeCommand()` (https://github.com/predis/predis/blob/v3.2.0/src/Command/Command.php#L157) to decide routing, - writes each chunk to the connection chosen for that (fake) command. RESP is length-prefixed, so the Redis **server** parses the original stream correctly — but this second, client-side parser treats attacker-controlled `\r\n` sequences as command boundaries. An argument such as: PAD\r\n*1\r\n$7\r\nFLUSHDB is a single data value to the server, but a complete, valid `FLUSHDB` command to the re-parser. The consequence depends on the connection type: - **Replication:** a pipeline forces `switchToMaster()`, so all chunks go to the master and the byte stream stays intact — but the misaligned chunk makes `deserializeCommand()` throw an uncaught `UnexpectedValueException: Invalid serializing format`. Any value conta

Properties

severity
critical
summary
Predis: Redis command injection and denial of service via CRLF smuggling in pipelined commands on aggregate connections
epss_score
0.00415
cvss_score
9.8
ghsa_published
2026-09-08T20:57:50Z
source_url
https://github.com/advisories/GHSA-w6f5-v2h6-g786
ghsa_updated
2026-09-08T20:57:52Z
ghsa_id
GHSA-w6f5-v2h6-g786
cve_id
CVE-2026-84372
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
is_ghsa_only
false
epss_percentile
0.34814

Related Entities (5)

ENRICHED_BY (1)

[Source]FIRST EPSS

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]composer/predis/predis

AFFECTS (1)

[Software]composer/predis/predis

HAS_WEAKNESS (1)

[Weakness]Improper Neutralization of CRLF Sequences ('CRLF Injection')

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-84372 (CVSS 9.8) — Ninja Signal Threat Intelligence | Ninja Signal