CVE-2026-32322CVE-2026-32322是soroban-sdk中的一个中等严重性漏洞,存在于Fr(标量场)类型处理BN254和BLS12-381曲线时。漏洞根源在于Fr类型在比较两个值时,直接使用原始U256表示进行比较,而没有先对椭圆曲线场模数r进行取模操作。这意味着数学上相等的场元素(例如:r和0、2r和r)会被错误地判定为不相等。攻击者可以通过向智能合约提供精心构造的未约简Fr值来触发此漏洞。当合约对这些值执行相等性检查时,会产生错误的安全判断结果,可能导致授权决策错误或验证绕过。该漏洞影响所有使用Fr类型进行关键安全逻辑比较的Soroban智能合约。
soroban-sdk中Fr类型的比较操作存在缺陷。在椭圆曲线密码学中,BN254和BLS12-381曲线的标量场模数为r(BN254的r约为2^254),所有有效的标量值都应在[0, r-1]范围内。然而,当前的比较实现直接使用U256整数比较:a == b ? 这会导致以下问题:1) 当a=0, b=r时,数学上相等但比较结果为false;2) 当a=r, b=2r时,数学上a≡b (mod r)但比较结果为false。攻击者可通过合约输入接口提供大于等于r的Fr值,绕过基于相等性检查的安全机制。漏洞触发条件:用户输入未约简的Fr值 → 合约执行相等性比较 → 产生错误的比较结果 → 可能导致授权绕过或验证失效。修复方案是在比较前对两个值都执行模r约简操作。