CVE-2026-84372: Predis: Redis command injection and denial of service via CRLF smuggling in pipelined commands on aggregate connections

Published Sep 1, 2026
·
Updated

Predis is a flexible and feature-complete Redis and Valkey client for PHP. From version 3.0.0-RC1 until version 3.3.0, pipeline handling on aggregate cluster and replication connections reparses an already serialized RESP buffer in AbstractAggregateConnection::write() by splitting it with explode("\r\n") instead of honoring RESP length prefixes. Attacker-controlled keys or values containing CRLF sequences can therefore be interpreted by Command::deserializeCommand() as additional commands. On cluster connections, ClusterStrategy::getFakeKey() can route injected keyless commands using the literal fake key value "key", permitting operations such as shard-wide cache deletion, targeted data modification, data reads, or node disruption. On replication connections, malformed reparsing can throw an uncaught exception and repeatedly terminate affected requests. Only pipeline() reaches this vulnerable path; transaction() and MULTI are not affected. This issue is fixed in version 3.3.0.

Affected Software

2 affected components
Predis Predis>3.0.0-RC1<=3.3.0
Predis Predis=3.3.0

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Predis to a version that resolves this vulnerability.

    Fixed in 3.3.0

Event History

Sep 1, 2026
CVE Published
via MITRE·09:20 PM
Data Sourced
via MITRE·09:20 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are affected?

Predis versions from 3.0.0-RC1 through 3.3.0 are affected when applications use pipeline() over aggregate cluster or replication connections. The vulnerable path is not reached by transaction() or MULTI.

2

What does an attacker need to exploit this issue?

An attacker needs control over a Redis command key or value that is included in a pipelined command and contains CRLF sequences. No Redis authentication or application privileges are described as prerequisites, but the application must pass attacker-controlled input into the affected pipeline path.

3

What is the practical impact on cluster and replication connections?

On cluster connections, injected commands may enable shard-wide cache deletion, targeted data modification, data reads, or node disruption. On replication connections, malformed reparsing can cause an uncaught exception that repeatedly terminates affected requests.

4

What should be done if an immediate upgrade is not possible?

Avoid using pipeline() with aggregate cluster or replication connections for commands containing untrusted keys or values, and reject or sanitize CRLF sequences in those inputs. Upgrading to the fixed version, 3.3.0, is the documented remediation.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203