<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Predis - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/predis/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Tue, 08 Sep 2026 21:48:57 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/predis/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Remote Command Injection and DoS in Predis via CRLF Smuggling</title><link>https://feed.craftedsignal.io/briefs/2026-09-predis-crlf-smuggling/</link><pubDate>Tue, 08 Sep 2026 21:48:57 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-predis-crlf-smuggling/</guid><description>Predis versions 3.0.0-RC1 through 3.2.0 are vulnerable to CRLF smuggling in pipeline operations on aggregate connections, enabling remote command injection on cluster configurations or denial-of-service on replication setups.</description><content:encoded><![CDATA[<p>Predis versions 3.0.0-RC1 through 3.2.0 contain an improper CRLF neutralization vulnerability in the <code>AbstractAggregateConnection::write()</code> method. When executing pipeline operations on aggregate connections (cluster or replication), the library re-parses the serialized pipeline buffer using <code>explode(&quot;\r\n&quot;)</code> instead of respecting RESP length prefixes. An attacker who can influence values or keys passed into pipelined commands can inject arbitrary Redis commands.</p>
<p>On cluster configurations, this results in remote command injection, allowing attackers to execute commands like <code>FLUSHDB</code>, <code>DEL</code>, or <code>SET</code> on specific shards, potentially leading to cache poisoning, data theft, or service outages. On replication configurations, the same CRLF injection causes the <code>deserializeCommand()</code> method to throw an uncaught <code>UnexpectedValueException</code>, resulting in a repeatable, unauthenticated denial-of-service condition. This vulnerability was introduced in v3.0.0-RC1 and fixed in version 3.3.0.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>The application accepts user-influenced input, such as a URL slug, used as a key for Redis cache operations.</li>
<li>The application initiates a <code>pipeline()</code> request containing the attacker-influenced key to a Redis cluster.</li>
<li>The attacker crafts a request containing a smuggled command payload, such as <code>PAD\r\n*1\r\n$7\r\nFLUSHDB</code>.</li>
<li>The Predis library's vulnerable <code>AbstractAggregateConnection</code> logic splits the buffer based on <code>\r\n</code> characters, improperly identifying the smuggled payload as a new command.</li>
<li>The library rebuilds the smuggled command and routes it to a specific Redis node based on the hardcoded <code>'key'</code> slot strategy.</li>
<li>The Redis cluster node parses the smuggled command (e.g., <code>FLUSHDB</code>) as a legitimate request from the application.</li>
<li>The target Redis shard executes the smuggled command, resulting in cache clearing, data modification, or unauthorized access.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation allows for unauthenticated remote command injection in cluster environments, leading to shard-wide data destruction via <code>FLUSHDB</code>, targeted <code>DEL</code> operations, or cache poisoning. In replication environments, the vulnerability acts as a reliable vector for denial-of-service, crashing request-handling threads and impacting application availability. This affects any application utilizing Predis v3.0.0-RC1 through 3.2.0 with aggregate connection types.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Immediately upgrade to <strong>predis/predis 3.3.0 or later</strong> to resolve the CRLF neutralization flaw in the pipeline handler.</li>
<li>If upgrading is not immediately possible, audit application code to ensure that no attacker-influenced data (values or keys) is used within <code>pipeline()</code> calls on aggregate connections.</li>
<li>Deploy WAF or application-level input validation to sanitize input keys and values for <code>\r\n</code> sequences before they are processed by the Predis client library.</li>
<li>Monitor application logs for <code>UnexpectedValueException</code> errors in production environments, which may indicate attempted exploitation or active DoS attacks against replication-based setups.</li>
</ol>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>redis</category><category>injection</category><category>php</category><category>predis</category></item></channel></rss>