仅供实验研究,prefetch和nperm的代码(需要设置的内存参考set.gdb)未附加,未进行优化命中概率低
作者关注到该漏洞作者已发布该漏洞相关信息:google/security-research#414
利用思路截然不同,由于未完整验证该利用思路持保守意见(主要是sock自旋锁是否能竞态作者并未实测,按照代码片面理解可以通过timerfd硬中断进行竞态)
前置分析:https://xz.aliyun.com/news/92649
利用思路:msg_msgseg通过cross_cache复用tipc_sock,伪造一些字段通过所有check最终进行释放,然后构造skb与pipe_buffer的overlap,篡改pipe_buffer的flags(splice只读文件/etc/passwd然后篡改flags,dirtypipe的扩展利用思路)。由于未泄露内核堆地址所以伪造的sk->lock.wq无法指向自身,为了通过check伪造curr->func(源码详见__wake_up_common调用链)为ret,所以dataonly实现的不是特别完全