今天看啥  ›  专栏  ›  看雪学苑

浅析libc2.38版本及以前tcache安全机制演进过程与绕过手法

看雪学苑  · 公众号  · 互联网安全  · 2024-12-12 17:59
    

文章预览

本文重点关注tcache本身的结构、取用放入的原子操作,以及其free安全机制的演变过程, 大概分水岭在于: 2.26(tcache出现) 2.28(_int_free引入key防止双重释放) 2.32(PROTECT_PTR的引入波及tcache利用) 2.34(使得key随机生成,而非tcache_perthread_struct的地址) 在这个过程中,可以看到ptmalloc力保tcache的性能,导致没有做到对堆利用的完全封堵。 本文对于tcache针对各sizebin的具体操作,将不会表现太多细节,因为如果要关注安全性,其实关注它们的底层一点的安全机制即可。 01 tcache安全机制演变与对应绕过手法 tcache核心思想 首先不得不提的是,“快”,贯穿整个tcache机制之中——这决定了它的一些安全特性。 这使得刚开始2.26版本下突然引入的tcache没有任何安全检查,在后面的补丁中,也只是做了必要的、不太影响性能的安全检查。 tcache适用于非large bin大小的堆内存 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览
推荐文章