<?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/"><channel><title>Gossipsub — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/gossipsub/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Mon, 30 Mar 2026 13:04:03 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/gossipsub/feed.xml" rel="self" type="application/rss+xml"/><item><title>libp2p-gossipsub Remote Denial of Service via Integer Overflow</title><link>https://feed.craftedsignal.io/briefs/2026-03-libp2p-gossipsub-dos/</link><pubDate>Mon, 30 Mar 2026 13:04:03 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-03-libp2p-gossipsub-dos/</guid><description>A remote, unauthenticated attacker can crash applications using libp2p-gossipsub versions prior to 0.49.4 by sending a crafted PRUNE control message with a near-maximum backoff value, causing an arithmetic overflow during heartbeat processing.</description><content:encoded><![CDATA[<p>The Rust libp2p Gossipsub implementation, a peer-to-peer networking library, is susceptible to a remote denial-of-service (DoS) vulnerability. This flaw resides in the handling of <code>backoff</code> expiry during heartbeat processing. By sending a specially crafted <code>PRUNE</code> control message containing an attacker-controlled, near-maximum <code>backoff</code> value, a remote, unauthenticated peer can trigger an integer overflow. This overflow occurs when the implementation performs unchecked addition of the <code>backoff_time</code> and a <code>slack</code> value. This vulnerability affects applications using libp2p-gossipsub versions prior to 0.49.4 and is distinct from CVE-2026-33040, which addressed overflow during backoff insertion. This report highlights a distinct secondary overflow path in heartbeat expiry handling that remained exploitable even after the initial insertion-side hardening. The vulnerability was reported by the Security team of the Ethereum Foundation.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>An attacker establishes a standard libp2p session with a target node using <code>TCP + Noise</code> for encryption.</li>
<li>The attacker negotiates a stream multiplexer protocol such as <code>mplex</code> or <code>yamux</code>.</li>
<li>The attacker opens a Gossipsub stream with the target node to initiate communication.</li>
<li>The attacker sends an RPC (Remote Procedure Call) containing a <code>ControlPrune</code> message.</li>
<li>The <code>ControlPrune</code> message includes a crafted <code>backoff</code> value set near the maximum representable value for an i64 integer (e.g., <code>9223372036854674580</code>). The attacker chooses this value relative to the victim&rsquo;s uptime.</li>
<li>The target node parses the <code>backoff</code> value from the protobuf message and processes it using <code>Behaviour::handle_prune()</code>.</li>
<li>The <code>backoff</code> value is stored after a checked addition to ensure it&rsquo;s valid, however the near-maximum value is still retained.</li>
<li>On the next heartbeat, the node attempts to calculate the expiry time by adding a <code>slack</code> value to the stored <code>backoff_time</code> using unchecked addition, which results in an integer overflow, causing a panic and crashing the application.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>This vulnerability results in a remote, unauthenticated denial of service. Any application exposing an affected <code>libp2p-gossipsub</code> listener can be crashed by a network-reachable peer. The crash occurs during heartbeat processing, not immediately upon receiving the <code>PRUNE</code> message. The attack can be repeated by reconnecting to the target and replaying the crafted <code>PRUNE</code> message. This could lead to service disruptions and potential data loss if the application does not handle crashes gracefully. The number of potential victims is significant, encompassing any application utilizing vulnerable versions of the <code>libp2p-gossipsub</code> library.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade the <code>libp2p-gossipsub</code> dependency to version 0.49.4 or later to patch the unchecked arithmetic operation that causes the overflow.</li>
<li>Deploy the Sigma rule &ldquo;Detect libp2p Gossipsub PRUNE with Large Backoff&rdquo; to identify potential exploitation attempts by monitoring network traffic for unusually large <code>backoff</code> values in <code>PRUNE</code> messages.</li>
<li>Enable network connection logging to capture details of libp2p sessions and identify potential malicious peers attempting to exploit this vulnerability (logsource: network_connection).</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>libp2p</category><category>gossipsub</category><category>denial-of-service</category><category>integer overflow</category><category>rust</category></item></channel></rss>