Impact
A flaw in the Brillig bytecode compiler for the Noir language causes heap corruption when allocating memory for nested array results returned by foreign function calls. The bug under‑allocates space for arrays whose elements are composite types, such as tuples, leading to a buffer overrun during code generation. The nature of the flaw implies that an attacker can influence program state, potentially enabling arbitrary code execution or causing compiler crashes. Based on the description, it is inferred that an attacker would need to supply compiled Noir code containing a foreign call that returns a nested array of composite types to trigger the corruption.
Affected Systems
The vulnerability exists in the Noir compiler (noir‑lang:noir). All releases prior to version 1.0.0‑beta.19 are affected. The issue is fixed in version 1.0.0‑beta.19 and later.
Risk and Exploitability
The CVSS score of 9.3 indicates critical severity. The EPSS score of less than 1% suggests that exploitation is currently considered unlikely. The vulnerability is not listed in the CISA KEV catalog. Attackers would need to supply compiled Noir code that includes a foreign call returning a nested array of composite types, a condition that is inferred from the description rather than explicitly stated. The impact is limited to the compilation process, although erroneous compilation can propagate into runtime bugs that might be exploitable by malicious contracts or programs.
OpenCVE Enrichment
Github GHSA