paperbot · PL 论文追踪

全部论文 待读 收藏

P2 MineSweeper: a “clean sweep” for drop-in use-after-free prevention

MineSweeper:面向即插即用 use-after-free 防护的“彻底清扫”
ASPLOS Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems2022匹配度 1/10 · 该论文研究运行时 use-after-free 防护与内存隔离/扫描,属于系统安全与运行时内存管理,与用户关注的静态分析、LLM/Agent 交叉、浮点程序分析或贝叶斯程序分析均无直接关系。引用 26 inbox
Márton Erdős, Sam Ainsworth, Timothy M. Jones
crossref: 2026-09-12dblp: 2026-09-12

AI 速览

一句话:提出 MineSweeper:将已释放内存隔离并线性扫描悬垂指针,在安全时回收,实现低开销即插即用 use-after-free 防护。

低级语言依赖手动内存管理,use-after-free(UAF)漏洞常被利用:对象被错误释放后,悬垂指针仍可访问,攻击者可重占并覆写其内存。MineSweeper 通过将已释放分配保留在隔离区,并高效线性扫描程序内存,识别不再存在指向隔离对象的悬垂指针的项,从而仅在安全时允许重新分配;这比先前的传递标记方法更高效。该系统接入 JeMalloc,在 SPEC CPU2006 上平均增加 11.1% 内存占用、5.4% 执行时间(几何平均)和 9.6% 额外多线程 CPU 使用,显著优于非概率式即插即用时序安全方案,适合实际生产部署。

问题
低级语言中手动内存管理导致的 use-after-free 漏洞可被攻击者利用,而现有非概率即插即用时序安全方案开销过高。
方法
MineSweeper 将已释放分配放入隔离区,通过高效线性扫描内存检测是否仍存在悬垂指针,仅在无指针指向时安全回收;实现接入 JeMalloc。
评估
在 SPEC CPU2006 上评估,平均内存占用增加 11.1%、执行时间开销 5.4%、额外多线程 CPU 使用 9.6%,优于现有非概率 drop-in 时序安全方案。
原文摘要(Abstract)

Low-level languages, which require manual memory management from the programmer, remain in wide use for performance-critical applications. Memory-safety bugs are common, and now a major source of exploits. In particular, a use-after-free bug occurs when an object is erroneously deallocated, whilst pointers to it remain active in memory, and those (dangling) pointers are later used to access the object. An attacker can reallocate the memory area backing an erroneously freed object, then overwrite its contents, injecting carefully chosen data into the host program, thus altering its execution and achieving privilege escalation. We present MineSweeper, a system to mitigate use-after-free vulnerabilities by retaining freed allocations in a quarantine, until no pointers to them remain in program memory, thus preventing their reallocation until it is safe. MineSweeper performs efficient linear sweeps of memory to identify quarantined items that have no dangling pointers to them, and thus can be safely reallocated. This allows MineSweeper to be significantly more efficient than previous transitive marking procedure techniques. MineSweeper, attached to JeMalloc, improves security at an acceptable overhead in memory footprint (11.1% on average) and an execution-time cost of only 5.4% (geometric mean for SPEC CPU2006), with 9.6% additional threaded CPU usage. These figures considerably improve on the state-of-the-art for non-probabilistic drop-in temporal-safety systems, and make MineSweeper the only such scheme suitable for deployment in real-world production environments.

链接与引用

DOI 原文 · PDF(开放获取) · DBLP

BibTeX
@inproceedings{ErdosA022,
  title = {MineSweeper: a “clean sweep” for drop-in use-after-free prevention},
  author = {Márton Erdős and Sam Ainsworth and Timothy M. Jones},
  booktitle = {ASPLOS},
  year = {2022},
  doi = {10.1145/3503222.3507712}
}