UAFX


paper:https://www.ndss-symposium.org/wp-content/uploads/2025-559-paper.pdf

paper

NDSS 2025

摘要

发现跨入口的UAF漏洞;

challenge

design

  1. 跨入口的释放/使用点别名分析;有的点是加了保护的,像entry2中的使用点;
  2. 认证一个UAF需要对所有相关代码进行系统、认真的分析;

  1. 上图中entry0还有一个释放操作,笔者没画出来,直接看论文原图;
  2. 下面的每一个entry就类似于一个函数、或者一个syscall的处理;
  3. 上面的每一个框框就表示一个全局变量,其实就是entry之间的指针传递媒介;
  4. 找到的两条路径就是潜在的UAF;

寻找入口点

  1. 根据调用链分析找顶层函数;
  2. 启发式方法,根据经验找ioctl、file_operations结构体等;

分析每一个入口点

points-to分析

最重要的就是pionts-to分析,但不是简单地分析一个指针指向了什么obj,而是要同步识别escape和fetch这两类重点关注的cross-entry地情况;

入口点分析并不意味着是程序内分析,在入口函数是可以调用其他函数的,这也就形成了跨函数之间的分析:

  1. 上下文敏感性;
  2. 流敏感性;
  3. 域敏感性;
  4. 路径敏感性;

锁集(lockset)分析

核心观点是识别lock、unlock函数,然后看是不是用了同一个obj;

本论文观察到锁集分析的成功率关键取决于底层的别名分析,但是现有的技术基本上是基于别名分析,在cross-entry的情况下,很有可能不同类型的指针指向了同一个obj;

为了提高准确性,将这个过程分为两个阶段,

IMPLEMENTATION

使用SUTRUE,对其进行了修改,增加了12850行代码,删除了3838行代码;


文章作者: q1ming
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 q1ming !
  目录