Linux Kernel是开放源代码操作系统Linux的内核。 linux kernel支持蓝牙。在这个蓝牙栈中发现了本地root漏洞。 有漏洞的代码: static int bluez_sock_create(struct socket *sock, int proto) { if (proto >= BLUEZ_MAX_PROTO) return -EINVAL; ... return bluez_proto[proto]->create(sock, proto); } 可以通过调用socket()或socketpair()到达上述代码。如果向协议传送一个负值,就可以绕过边界检查。然后就可以将协议编号用作函数指针索引。攻击者可能将协议用作某些受控内存的索引,导致权限提升。
Linux Kernel是开放源代码操作系统Linux的内核。 linux kernel支持蓝牙。在这个蓝牙栈中发现了本地root漏洞。 有漏洞的代码: static int bluez_sock_create(struct socket *sock, int proto) { if (proto >= BLUEZ_MAX_PROTO) return -EINVAL; ... return bluez_proto[proto]->create(sock, proto); } 可以通过调用socket()或socketpair()到达上述代码。如果向协议传送一个负值,就可以绕过边界检查。然后就可以将协议编号用作函数指针索引。攻击者可能将协议用作某些受控内存的索引,导致权限提升。