<?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>Transcript-Malleability — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/transcript-malleability/</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>Thu, 21 May 2026 20:25:28 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/transcript-malleability/feed.xml" rel="self" type="application/rss+xml"/><item><title>Plonky3 Challenger Transcript Malleability and Challenge Entropy Loss</title><link>https://feed.craftedsignal.io/briefs/2026-05-plonky3-challenger/</link><pubDate>Thu, 21 May 2026 20:25:28 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-05-plonky3-challenger/</guid><description>The p3-challenger rust package is vulnerable to transcript malleability and challenge entropy loss, allowing attackers to craft distinct transcripts that produce identical challenges, breaking the binding property of Fiat-Shamir due to partial-chunk aliasing, non-injective squeeze, and high-bit truncation.</description><content:encoded><![CDATA[<p>The <code>p3-challenger</code> Rust package, specifically versions prior to 0.4.3 and versions between 0.5.0 and 0.5.3, contains vulnerabilities that can be exploited to manipulate cryptographic transcripts. These vulnerabilities stem from issues in the <code>MultiField32Challenger::duplexing</code> function within <code>challenger/src/multi_field_challenger.rs</code>. An attacker with control over prover-side observations can exploit these weaknesses to craft distinct transcripts that generate identical challenges, thereby breaking the binding property of the Fiat-Shamir transform. This impacts the integrity of cryptographic protocols that rely on the challenger to produce unpredictable challenges based on previous interactions. The vulnerabilities include partial-chunk aliasing during absorption, non-injective squeeze functions, and high-bit truncation during digest observation. These flaws can lead to weakened entropy and potential for selective forgery.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker gains control over prover-side observations in a cryptographic protocol using <code>p3-challenger</code>.</li>
<li>The prover provides an initial observation <code>[x]</code> to the <code>MultiField32Challenger</code>.</li>
<li>Due to partial-chunk aliasing (CVE-2026-46654), the attacker can manipulate the input by extending the observation with zeros <code>[x, 0, ..., 0]</code> without affecting the sponge state, because the <code>reduce_32</code> function doesn&rsquo;t account for length.</li>
<li>The <code>duplexing()</code> function processes the input using <code>reduce_32</code>, leading to an equivalent sponge state for both <code>[x]</code> and <code>[x, 0, ..., 0]</code>.</li>
<li>The challenger proceeds to squeeze the sponge state to generate a challenge.  Due to the non-injective squeeze vulnerability, distinct PF values whose base-2^64 digits differ only in their upper 33 bits produce identical F challenge sequences.</li>
<li>The attacker can also observe Hash/MerkleCap values; high-bit truncation discards the top bits. For BN254, only 192 bits are considered, allowing the attacker to manipulate bits 192-253 without affecting challenges.</li>
<li>The identical sponge state results in the same challenge being generated, regardless of the attacker&rsquo;s manipulation of the transcript.</li>
<li>The attacker exploits the compromised challenge to forge a proof or selectively alter protocol behavior.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of these vulnerabilities allows an attacker to undermine the security of cryptographic protocols relying on the <code>p3-challenger</code> package. By crafting transcripts that yield identical challenges, attackers can forge proofs, selectively alter protocol behavior, or bypass security mechanisms designed to prevent malicious activity. The impact is significant in zero-knowledge proof systems, verifiable computation, and other cryptographic applications where the integrity of the challenger is crucial. These vulnerabilities affect any application using the flawed versions of <code>p3-challenger</code>, potentially compromising the security of numerous systems that depend on these cryptographic primitives.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade to <code>p3-challenger</code> version 0.4.3 or 0.5.3 or later to remediate CVE-2026-46654.</li>
<li>Implement input validation to prevent partial-chunk aliasing, ensuring that input buffers are properly padded and length-marked before processing with <code>reduce_32</code>.</li>
<li>Review and harden the squeeze function to guarantee injectivity, ensuring distinct PF rate cells yield distinct F challenge sequences, to prevent non-injective squeezes.</li>
<li>Ensure that all bits of absorbed elements influence the sponge state, addressing high-bit truncation, especially for fields whose bit-width is not a multiple of 64.</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>transcript-malleability</category><category>challenge-entropy</category><category>cryptography</category><category>rust</category></item></channel></rss>