CVE-2023-46132

Source
https://nvd.nist.gov/vuln/detail/CVE-2023-46132
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-46132.json
Aliases
Published
2023-11-14T21:15:11Z
Modified
2023-11-29T10:19:03.000371Z
Details

Hyperledger Fabric is an open source permissioned distributed ledger framework. Combining two molecules to one another, called "cross-linking" results in a molecule with a chemical formula that is composed of all atoms of the original two molecules. In Fabric, one can take a block of transactions and cross-link the transactions in a way that alters the way the peers parse the transactions. If a first peer receives a block B and a second peer receives a block identical to B but with the transactions being cross-linked, the second peer will parse transactions in a different way and thus its world state will deviate from the first peer. Orderers or peers cannot detect that a block has its transactions cross-linked, because there is a vulnerability in the way Fabric hashes the transactions of blocks. It simply and naively concatenates them, which is insecure and lets an adversary craft a "cross-linked block" (block with cross-linked transactions) which alters the way peers process transactions. For example, it is possible to select a transaction and manipulate a peer to completely avoid processing it, without changing the computed hash of the block. Additional validations have been added in v2.2.14 and v2.5.5 to detect potential cross-linking issues before processing blocks. Users are advised to upgrade. There are no known workarounds for this vulnerability.

References

Affected packages

Git / github.com/hyperledger/fabric

Affected ranges

Type
GIT
Repo
https://github.com/hyperledger/fabric
Events
Type
GIT
Repo
https://github.com/smartbft-go/fabric
Events

Affected versions

0.*

0.1

v1.*

v1.0.0
v1.0.1
v1.0.2
v1.0.3
v1.0.4
v1.0.5
v1.0.6
v1.1.0
v1.1.0-alpha
v1.1.0-preview
v1.1.0-rc1
v1.1.1
v1.2.0
v1.2.0-rc1
v1.2.1
v1.3.0
v1.3.0-rc1
v1.4.0
v1.4.0-rc1
v1.4.0-rc2
v1.4.1
v1.4.1-rc1

v2.*

v2.0.0-alpha
v2.0.0-beta
v2.4.0
v2.4.0-alpha
v2.4.0-beta
v2.5.0
v2.5.0-alpha1
v2.5.0-alpha2
v2.5.0-alpha3
v2.5.0-beta
v2.5.0-beta2
v2.5.1
v2.5.2
v2.5.3
v2.5.4