Linux Kernel DCCP多个本地信息泄露漏洞

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

Linux是一款开放源代码的操作系统。 Linux针对DCCP支持存在多个问题,本地攻击者可以利用漏洞访问敏感信息。 问题存在于net/dccp/proto.c文件中的do_dccp_getsockopt()函数: ----------------------- static int do_dccp_getsockopt(struct sock *sk, int level, int optname, char __user *optval, int __user *optlen) ... if (get_user(len, optlen)) return -EFAULT; if (len < sizeof(int)) return -EINVAL; ... ----------------------- 上面代码没有检查'len'变量回负值,如果'len'小于0,那么(len < sizeof(int))一直为真,在之后调用copy_to_user(): ----------------------- if (put_user(len, optlen) || copy_to_user(optval, &val, len)) return -EFAULT; ----------------------- 根据CPU使用的架构有自身的copy_to_user()实现。在IA-32如下: ----------------------- unsigned long copy_to_user(void __user *to, const void *from, unsigned long n) { BUG_ON((long) n < 0); ----------------------- 会防止被利用,但内核会由于BUG_ON()中的非法opcode而崩溃。 在一些X86-64架构上,内核空间数据会拷贝到用户提供的缓冲区而导致敏感信息泄露。 Ubuntu Ubuntu Linux 7.04 sparc Ubuntu Ubuntu Linux 7.04 powerpc Ubuntu Ubuntu Linux 7.04 i386 Ubuntu Ubuntu Linux 7.04 amd64 Ubuntu Ubuntu Linux 6.10...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息