Impact
Predis, a PHP Redis and Valkey client, contained a vulnerability in versions 3.0.0-RC1 through 3.3.0 that allowed an attacker to inject additional Redis commands when using pipelined operations. The problem arose because the library incorrectly parsed the RESP buffer by splitting on CRLF characters rather than honoring the RESP length prefixes. Keys or values that included CRLF sequences were interpreted as separate commands during deserialization, enabling arbitrary command injection and potentially causing a denial of service if malformed input caused repeated exceptions on replication connections. The attack could allow deletion of shard-wide cache entries, targeted data modification or read, or even node disruption on cluster connections. The weakness is classified as CWE-93.
Affected Systems
The flaw applies to the Predis client library for PHP, specifically to aggregate cluster and replication connections when the pipeline() method is used. Affected versions are 3.0.0-RC1 up to but not including 3.3.0. All installations of Predis that perform pipelined commands against Redis or Valkey clusters or replication sets are vulnerable.
Risk and Exploitability
The CVSS score of 9.8 signifies a very high severity. Although EPSS data is not available and the vulnerability is not listed in the CISA KEV catalog, the exploitation potential remains significant. The attack vector is inferred to require an attacker who can influence the application’s input that is sent to Redis via Predis – for example, injecting CRLF characters into keys or values. Because the flaw is client-side, a compromised or untrusted PHP application could be exploited to run arbitrary Redis commands or disrupt service. Given the high CVSS score and the potential for wide-scale impact on data integrity and availability, the risk for systems still using the affected library versions is high and remediation should be considered a priority.
OpenCVE Enrichment