// For flags

CVE-2023-46132

Crosslinking transaction attack in hyperledger/fabric

Severity Score

6.5
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

1
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track
*SSVC
Descriptions

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.

Hyperledger Fabric es un framework de contabilidad distribuido con permisos de código abierto. La combinación de dos moléculas entre sí, lo que se denomina "cross-linking", da como resultado una molécula con una fórmula química que está compuesta por todos los átomos de las dos moléculas originales. En Fabric, se puede tomar un bloque de transacciones y vincular las transacciones de una manera que altere la forma en que los pares analizan las transacciones. Si un primer par recibe un bloque B y un segundo par recibe un bloque idéntico a B pero con las transacciones cross-linked, el segundo par analizará las transacciones de una manera diferente y, por lo tanto, su estado mundial se desviará del primer par. Los ordenantes o pares no pueden detectar que un bloque tiene sus transacciones cross-linked, porque existe una vulnerabilidad en la forma en que Fabric procesa las transacciones de los bloques. Los concatena de manera simple e ingenua, lo cual es inseguro y permite que un adversario cree un "cross-linked block" (bloque con transacciones entrecruzadas) que altera la forma en que los pares procesan las transacciones. Por ejemplo, es posible seleccionar una transacción y manipular un par para evitar por completo procesarla, sin cambiar el hash calculado del bloque. Se agregaron validaciones adicionales en v2.2.14 y v2.5.5 para detectar posibles problemas de cross-linking antes de procesar bloques. Se recomienda a los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None
Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
Low
* Common Vulnerability Scoring System
SSVC
  • Decision:Track
Exploitation
None
Automatable
No
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2023-10-16 CVE Reserved
  • 2023-11-14 CVE Published
  • 2024-08-29 CVE Updated
  • 2024-08-29 First Exploit
  • 2024-10-14 EPSS Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
CWE
  • CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Hyperledger
Search vendor "Hyperledger"
Fabric
Search vendor "Hyperledger" for product "Fabric"
>= 1.0.0 < 2.2.14
Search vendor "Hyperledger" for product "Fabric" and version " >= 1.0.0 < 2.2.14"
-
Affected
Hyperledger
Search vendor "Hyperledger"
Fabric
Search vendor "Hyperledger" for product "Fabric"
>= 2.3.0 < 2.5.5
Search vendor "Hyperledger" for product "Fabric" and version " >= 2.3.0 < 2.5.5"
-
Affected