Hyperledger Fabric
cpe:2.3:a:hyperledger:fabric:*:*:*:*:*:*:*
- >= 1.0.0, <= 2.2.x
A remote code execution vulnerability exists in the Hyperledger Fabric SDK for Java, specifically in the channel deserialization process. This issue affects versions 1.0.0 through 2.2.26. The vulnerability arises because the 'Channel.java' file's 'readObject()' method calls 'ObjectInputStream.readObject()' on untrusted byte arrays without proper input filtering. As a result, an attacker can exploit this deserialization flaw to execute arbitrary code. The risk is particularly high in deployments that accept channel data from untrusted sources.
Exploitation of this vulnerability allows for remote code execution on the client application.
To reproduce this vulnerability, first generate a malicious payload using a tool like 'ysoserial' that exploits Java deserialization vulnerabilities. This payload should be crafted to execute a command, such as creating a file in the '/tmp' directory. Once the payload is created, it can be deserialized by the vulnerable 'deSerializeChannel()' method in 'Channel.java', triggering the remote code execution.
The recommended remediation is to migrate to 'org.hyperledger.fabric:fabric-gateway', which does not use Java serialization and is not vulnerable to this issue.
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.