Typestate-Guided Fuzzer for Discovering Use-after-Free Vulnerabilities

被引:71
|
作者
Wang, Haijun [1 ,2 ]
Xie, Xiaofei [3 ]
Li, Yi [3 ]
Wen, Cheng [2 ]
Li, Yuekang [3 ]
Liu, Yang [3 ,4 ]
Qin, Shengchao [2 ,5 ]
Chen, Hongxu [3 ]
Sui, Yulei [6 ]
机构
[1] Ant Financial Serv Grp, Hangzhou, Peoples R China
[2] Shenzhen Univ, CSSE, Shenzhen, Peoples R China
[3] Nanyang Technol Univ, Singapore, Singapore
[4] Zhejiang Sci Tech Univ, Hangzhou, Peoples R China
[5] Teesside Univ, SCEDT, Middlesbrough, Cleveland, England
[6] Univ Technol Sydney, Sydney, NSW, Australia
基金
新加坡国家研究基金会; 中国国家自然科学基金;
关键词
Fuzzing; Typestate-guided fuzzing; Use-after-Free vulnerabilities;
D O I
10.1145/3377811.3380386
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Existing coverage-based fuzzers usually use the individual control flow graph (CFG) edge coverage to guide the fuzzing process, which has shown great potential in finding vulnerabilities. However, CFG edge coverage is not effective in discovering vulnerabilities such as use-after-free (UaF). This is because, to trigger UaF vulnerabilities, one needs not only to cover individual edges, but also to traverse some ( long) sequence of edges in a particular order, which is challenging for existing fuzzers. To this end, we propose to model UaF vulnerabilities as typestate properties, and develop a typestate-guided fuzzer, named UAFL, for discovering vulnerabilities violating typestate properties. Given a typestate property, we first perform a static typestate analysis to find operation sequences potentially violating the property. Our fuzzing process is then guided by the operation sequences in order to progressively generate test cases triggering property violations. In addition, we also employ an information flow analysis to improve the efficiency of the fuzzing process. We have performed a thorough evaluation of UAFL on 14 widely-used real-world programs. The experiment results show that UAFL substantially outperforms the state-of-the-art fuzzers, including AFL, AFLFast, FairFuzz, MOpt, Angora and QSYM, in terms of the time taken to discover vulnerabilities. We have discovered 10 previously unknown vulnerabilities, and received 5 new CVEs.
引用
收藏
页码:999 / 1010
页数:12
相关论文
共 46 条
  • [1] Machine-Learning-Guided Typestate Analysis for Static Use-After-Free Detection
    Yan, Hua
    Sui, Yulei
    Chen, Shiping
    Xue, Jingling
    [J]. 33RD ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE (ACSAC 2017), 2017, : 42 - 54
  • [2] Detect use-after-free vulnerabilities in binaries
    Han, Xinhui
    Wei, Shuang
    Ye, Jiayi
    Zhang, Chao
    Ye, Zhiyuan
    [J]. Qinghua Daxue Xuebao/Journal of Tsinghua University, 2017, 57 (10): : 1022 - 1029
  • [3] Scalable Static Detection of Use-After-Free Vulnerabilities in Binary Code
    Zhu, Kailong
    Lu, Yuliang
    Huang, Hui
    [J]. IEEE ACCESS, 2020, 8 : 78713 - 78725
  • [4] HeapExpo: Pinpointing Promoted Pointers to Prevent Use-After-Free Vulnerabilities
    Shen, Zekun
    Dolan-Gavitt, Brendan
    [J]. 36TH ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE (ACSAC 2020), 2020, : 454 - 465
  • [5] POSTER: UAFChecker: Scalable Static Detection of Use-After-Free Vulnerabilities
    Ye, Jiayi
    Zhang, Chao
    Han, Xinhui
    [J]. CCS'14: PROCEEDINGS OF THE 21ST ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2014, : 1529 - 1531
  • [6] From Collision To Exploitation: Unleashing Use-After-Free Vulnerabilities in Linux Kernel
    Xu, Wen
    Li, Juanru
    Shu, Junliang
    Yang, Wenbo
    Xie, Tianyi
    Zhang, Yuanyuan
    Gu, Dawu
    [J]. CCS'15: PROCEEDINGS OF THE 22ND ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2015, : 414 - 425
  • [7] FreeSentry: Protecting Against Use-After-Free Vulnerabilities Due to Dangling Pointers
    Younan, Yves
    [J]. 22ND ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2015), 2015,
  • [8] Multi-level Directed Fuzzing for Detecting Use-after-Free Vulnerabilities
    Zhang, Yuntao
    Wang, Zhongru
    Yu, Weiqiang
    Fang, Binxing
    [J]. 2021 IEEE 20TH INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS (TRUSTCOM 2021), 2021, : 569 - 576
  • [9] FUZE: Towards Facilitating Exploit Generation for Kernel Use-After-Free Vulnerabilities
    Wu, Wei
    Chen, Yueqi
    Xu, Jun
    Xing, Xinyu
    Gong, Xiaorui
    Zou, Wei
    [J]. PROCEEDINGS OF THE 27TH USENIX SECURITY SYMPOSIUM, 2018, : 781 - 797
  • [10] Mpchecker: Use-After-Free Vulnerabilities Protection Based on Multi-Level Pointers
    Qiang, Weizhong
    Li, Weifeng
    Jin, Hai
    Surbiryala, Jayachander
    [J]. IEEE ACCESS, 2019, 7 : 45961 - 45977