<?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>Fabric-Sdk-Java — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/fabric-sdk-java/</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>Wed, 29 Apr 2026 20:41:58 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/fabric-sdk-java/feed.xml" rel="self" type="application/rss+xml"/><item><title>Hyperledger Fabric SDK Java Deserialization RCE</title><link>https://feed.craftedsignal.io/briefs/2024-01-26-fabric-deserialization/</link><pubDate>Wed, 29 Apr 2026 20:41:58 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-26-fabric-deserialization/</guid><description>The deprecated fabric-sdk-java client SDK is vulnerable to Java deserialization RCE due to the use of ObjectInputStream.readObject() without an ObjectInputFilter in Channel.java, allowing remote code execution if an attacker can supply crafted serialized Channel bytes to the client application.</description><content:encoded><![CDATA[<p>The <code>fabric-sdk-java</code> client SDK, a deprecated component of Hyperledger Fabric, contains a critical vulnerability related to insecure deserialization. Specifically, the <code>Channel.java</code> file implements <code>readObject()</code> and exposes <code>deSerializeChannel()</code> methods that call <code>ObjectInputStream.readObject()</code> on untrusted byte arrays without configuring an <code>ObjectInputFilter</code>. This omission allows an attacker to inject malicious serialized Java objects, leading to remote code execution (RCE). While <code>fabric-sdk-java</code> has been deprecated since Hyperledger Fabric v2.5 and replaced by <code>org.hyperledger.fabric:fabric-gateway</code>, organizations that have not yet migrated are still vulnerable. This issue highlights the risks associated with using deprecated software and the importance of migrating to supported versions. The vulnerability exists in versions 1.0.0 through 2.2.26.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker crafts a malicious serialized Java object using a tool like <code>ysoserial</code>. For example, <code>java -jar ysoserial.jar CommonsCollections6 &quot;touch /tmp/pwned&quot; &gt; malicious_channel.ser</code>.</li>
<li>The attacker gains the ability to supply crafted serialized Channel bytes to the client application. This could involve compromising a local channel file.</li>
<li>The attacker injects the malicious serialized data through an application that accepts Channel bytes from external sources.</li>
<li>The vulnerable <code>deSerializeChannel()</code> method in <code>Channel.java</code> is called with the attacker-controlled byte array.</li>
<li>Inside <code>deSerializeChannel()</code>, an <code>ObjectInputStream</code> is created from the byte array.</li>
<li>The <code>readObject()</code> method of <code>ObjectInputStream</code> is called without any <code>ObjectInputFilter</code>, deserializing the malicious object.</li>
<li>The deserialization process triggers the execution of a gadget chain embedded in the malicious object.</li>
<li>The gadget chain executes arbitrary code on the server, achieving RCE.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this vulnerability allows an attacker to execute arbitrary code on the server running the vulnerable <code>fabric-sdk-java</code> application. This can lead to complete system compromise, data breaches, and other malicious activities. The severity is critical due to the potential for unauthenticated remote code execution. Organizations still using the deprecated <code>fabric-sdk-java</code> are at high risk until they migrate to the supported <code>fabric-gateway</code>.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li><strong>Migrate to <code>org.hyperledger.fabric:fabric-gateway</code> immediately</strong> as the primary remediation, as it does not use Java serialization.</li>
<li>For organizations unable to migrate immediately, apply the suggested fix of adding an <code>ObjectInputFilter</code> to whitelist only expected classes as described in the advisory.</li>
<li>Implement runtime monitoring of Java deserialization to detect and prevent exploitation attempts.</li>
<li>Enable logging of deserialization events to aid in incident response.</li>
</ul>
]]></content:encoded><category domain="severity">critical</category><category domain="type">advisory</category><category>deserialization</category><category>rce</category><category>java</category></item></channel></rss>