目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2026-41197— Noir 安全漏洞

一分钟漏洞结论

影响对象
noir-lang noir
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

Noir是noir-lang开源的一款用于SNARK证明系统的领域特定语言。 Noir 1.0.0-beta.19之前版本存在安全漏洞,该漏洞源于嵌套数组内存分配错误,可能导致Brillig VM堆损坏。

AI 预测 5.5 利用难度: 困难 EPSS 0.49% · P40

可能的 ATT&CK 技术 1 AI

T1055 · Process Injection
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2026-41197 基础信息

漏洞信息

对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
Brillig: Heap corruption in foreign call results with nested tuple arrays
来源: CVE Program / CVE List V5
Vulnerability Description
Noir is a Domain Specific Language for SNARK proving systems that is designed to use any ACIR compatible proving system, and Brillig is the bytecode ACIR uses for non-determinism. Noir programs can invoke external functions through foreign calls. When compiling to Brillig bytecode, the SSA instructions are processed block-by-block in `BrilligBlock::compile_block()`. When the compiler encounters an `Instruction::Call` with a `Value::ForeignFunction` target, it invokes `codegen_call()` in `brillig_call/code_gen_call.rs`, which dispatches to `convert_ssa_foreign_call()`. Before emitting the foreign call opcode, the compiler must pre-allocate memory for any array results the call will return. This happens through `allocate_external_call_results()`, which iterates over the result types. For `Type::Array` results, it delegates to `allocate_foreign_call_result_array()` to recursively allocate memory on the heap for nested arrays. The `BrilligArray` struct is the internal representation of a Noir array in Brillig IR. Its `size` field represents the semi-flattened size, the total number of memory slots the array occupies, accounting for the fact that composite types like tuples consume multiple slots per element. This size is computed by `compute_array_length()` in `brillig_block_variables.rs`. For the outer array, `allocate_external_call_results()` correctly uses `define_variable()`, which internally calls `allocate_value_with_type()`. This function applies the formula above, producing the correct semi-flattened size. However, for nested arrays, `allocate_foreign_call_result_array()` contains a bug. The pattern `Type::Array(_, nested_size)` discards the inner types with `_` and uses only `nested_size`, the semantic length of the nested array (the number of logical elements), not the semi-flattened size. For simple element types this works correctly, but for composite element types it under-allocates. Foreign calls returning nested arrays of tuples or other composite types corrupt the Brillig VM heap. Version 1.0.0-beta.19 fixes this issue.
来源: CVE Program / CVE List V5
CVSS Information
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
来源: CVE Program / CVE List V5
Vulnerability Type
缓冲区大小计算不正确
来源: CVE Program / CVE List V5
Vulnerability Title
Noir 安全漏洞
来源: 中国国家信息安全漏洞库 CNNVD
Vulnerability Description
Noir是noir-lang开源的一款用于SNARK证明系统的领域特定语言。 Noir 1.0.0-beta.19之前版本存在安全漏洞,该漏洞源于嵌套数组内存分配错误,可能导致Brillig VM堆损坏。
来源: 中国国家信息安全漏洞库 CNNVD
CVSS Information
N/A
来源: 中国国家信息安全漏洞库 CNNVD
Vulnerability Type
N/A
来源: 中国国家信息安全漏洞库 CNNVD

受影响产品

厂商 产品 影响版本 CPE 订阅
noir-lang noir < 1.0.0-beta.19 -

二、漏洞 CVE-2026-41197 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2026-41197 的情报信息

请登录查看更多情报信息。

CVE-2026-41197 厂商安全公告 (1)

CVE-2026-41197 厂商页面 (1)

IV. Related Vulnerabilities

V. Comments for CVE-2026-41197

暂无评论


发表评论