CVE-2023-46132
Crosslinking transaction attack in hyperledger/fabric
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
1Exploited in Wild
-Decision
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.
CVSS Scores
SSVC
- Decision:Track
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
References (1)
URL | Tag | Source |
---|
URL | Date | SRC |
---|---|---|
https://github.com/hyperledger/fabric/security/advisories/GHSA-v9w2-543f-h69m | 2024-08-29 |
URL | Date | SRC |
---|
URL | Date | SRC |
---|
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
|