UAF due to using hlist_add_behind() without checking.

There is a pair locker(mutex_lock) at delete_note(), but isn’t at edit_note_time().

And it doesn’t check the flag before hlist_add_behind() in insert_note().

    for(;;) {/* add before a larger epoch */iter = hlist_entry(node, struct note_t, next);if (iter->epoch > epoch) {hlist_add_before(&(note->next), node);flag = true;break;}if (node->next == NULL)break;node = node->next;}/* at behind the last node */// if (!flag)  <-- patch...// it can lead to hlist broken.hlist_add_behind(&(note->next), node);

Exploitation:

1. UaF

  First we could free arbitrary object (eg. tty_struct) via any vulnerabilities,
re-allocate fake object with evil functions or rop gadgets.
Finally we can call related function in user mode.

2. kernel info leak

  should use the kzalloc() instead of kmalloc()

转载于:https://www.cnblogs.com/bittorrent/p/6680249.html

0ctf 2017 kernel pwn knote write up相关推荐

  1. CTF-PWN-babydriver (linux kernel pwn+UAF)

    第一次接触linux kernel pwn,和传统的pwn题区别较大,需要比较多的前置知识,以及这种题的环境搭建.运行和调试相关的知识. 文章目录 Linux内核及内核模块 Linux内核(Kerne ...

  2. 【学习札记NO.00004】Linux Kernel Pwn学习笔记 I:一切开始之前

    [学习札记NO.00004]Linux Kernel Pwn学习笔记 I:一切开始之前 [GITHUB BLOG ADDR](https://arttnba3.cn/2021/02/21/NOTE-0 ...

  3. Kernel pwn 入门 (6)

    本篇文章笔者借助一道题来学习一下kernel中的一种条件竞争利用方式:userfaultfd. 强网杯2021-notebook 这是一道kernel pwn题.我们首先打开ko文件看看. 本文主要参 ...

  4. Linux kernel pwn notes(内核漏洞利用学习)

    前言 对这段时间学习的 linux 内核中的一些简单的利用技术做一个记录,如有差错,请见谅. 相关的文件 https://gitee.com/hac425/kernel_ctf 相关引用已在文中进行了 ...

  5. Kernel pwn 入门 (3)

    ret2dir 这是一种绕过SMAP/SMEP和PXN防护的攻击方式.利用内核空间的direct mapping area(起始位置为0xFFF8880000000000).Linux对内存的访问采用 ...

  6. linux kernel pwn学习之hijack prctl

    Hijack prctl Prctl是linux的一个函数,可以对进程.线程做一些设置,prctl内部通过虚表来调用对应的功能,如果我们劫持prctl的虚表,使它指向其他对我们有帮助的内核函数,比如c ...

  7. pt-slot.php,Pwn In Kernel(一):基础知识

    Kernel Pwn In CTF 简单分析一下 CTF Kernel Pwn 题目的形式,以 2017 CISCN babydrive 为例. 先对文件包解压➜ example ls babydri ...

  8. linux后缀asok是什么意思,Pwn In Kernel(一):基础知识

    Kernel Pwn In CTF 简单分析一下 CTF Kernel Pwn 题目的形式,以 2017 CISCN babydrive 为例. 先对文件包解压➜ example ls babydri ...

  9. linux 堆溢出 pwn 指南,新手科普 | CTF PWN堆溢出总结

    学习汇总 序言 自从加入RTIS交流群, 在7o8v师傅,gd大佬的帮助下,PWN学习之路进入加速度.下面是八周学习的总结,基本上是按照how2heap路线走的.由于八周内容全写,篇幅太长,这里只讲述 ...

最新文章

  1. 基于 NodeGit 的周报生成工具
  2. 【机器听觉】初探语音识别技术
  3. mysql 创建外键实例_mysql 外键创建实例
  4. 模拟IE登录一个需要(windows身份)验证的网站
  5. JavaScript中的嵌套事件处理(在鼠标移动事件上)
  6. 【学堂在线数据挖掘:理论方法笔记】第一天(3.17)
  7. Tbase 源码 (八)
  8. ThinkPad S2 安装deepin系统,安装rtl8821ce无线网卡驱动,适合deepin/ubuntu
  9. 浅谈使用KMeans进行性别与年龄的聚类分析
  10. 读《沟通的方法》推荐序有感
  11. 回溯法求解N皇后问题及其时间复杂度分析
  12. SQLServer中ADO,OLEDB,ODBC的区别
  13. 2015程序员小白理财记
  14. JS的除法应用 求余,取整,进一法,四舍五入
  15. 数字图像处理之BSQ,BIL,BIP的存储格式相互转换算法,用Java+GDAL实现,附源码
  16. nyoj 125 盗梦空间
  17. Python 分形算法,代码里开出来的数学之花
  18. 关于学Linux的时候安装vmtools时遇到的坑
  19. RK3128-室内机视频对讲主板方案
  20. 逆向入门学习路线及渠道

热门文章

  1. python编程零基础-编程零基础应当如何开始学习 Python?
  2. 怎么安装python3-centos编译安装python3怎么做?
  3. python是一门什么课程-从无到有用Python创造一门属于自己的编程语言1
  4. python方向-零基础转行Python,往这个方向走,绝对没有错
  5. 武汉python培训班排行榜-比较靠谱的武汉Python培训机构是哪个?
  6. python数字类型-Python数字类型介绍
  7. python的用途-请问在python中的% 是什么意思, 起到什么作用?
  8. python零基础怎么学-python 零基础该怎么学?
  9. python基础教程是什么语言-终于懂得python中文入门教程
  10. python基础教程视频(全13集)-Python基础视频教程全集