最近 AF_PACKET子系统中披露了另一个问题 Linux内核,其中 允许本地非特权用户以root用户身份运行代码 或退出具有根访问权限的隔离容器。
发布的信息提到创建AF_PACKET套接字并利用此漏洞需要CAP_NET_RAW权限。
但是,请注意 没有特权的用户可以获取许可 指定的 在启用了用户名称空间的系统上创建的容器中。
例如,默认情况下,Ubuntu和Fedora中包括用户名称空间,而Debian和RHEL中未启用用户名称空间。 而在Android中,中介程序进程有权创建AF_PACKET套接字,通过该套接字可以利用此漏洞。
关于AF_PACKET中的漏洞
该漏洞存在于tpacket_rcv函数中 这是由netoff变量的计算错误引起的。
攻击者可以创造条件 在这之下 将写入小于maclen的值 在netoff变量中 会造成溢出 通过计算“ macoff = netoff-maclen”,然后这样做可能会错误地将指针设置为传入数据的缓冲区。
结果是, 攻击者可以启动将1到10个字节写入分配的缓冲区之外的区域。
自2008年2016月以来,即在所有当前内核中,都存在错误计算,但是,现在已知的使用它来写入已分配缓冲区之外的区域(漏洞)的功能大概是从4.6年1月开始(来自内核)版本XNUMX-rcXNUMX和更高版本),以及对virtio_net支持的开发。
至于问题的解决方案,它仍然可以作为补丁使用。 另一方面,除了观察到正在开发允许在系统中获得根权限的利用程序外,还发现了一个利用程序。
对于那些想知道该修补程序是否已经可以用于其发行版的人,他们可以在以下页面上跟踪软件包更新在不同发行版中的外观: Ubuntu的, Fedora, SUSE, Debian, RHEL, 拱.
文本控制台的文本滚动支持已删除
另一方面,谈到Linux内核,还宣布从Linux内核中的文本控制台实现中删除了文本滚动代码(CONFIG_VGACON_SOFT_SCROLLBACK)。
编码 由于存在错误而被删除,由于缺少负责监督vgacon开发的经理,因此没有人要纠正。
它 几个月前,在vgacon中发现并修复了漏洞 (CVE-2020-14331),这可能会由于滚动缓冲区中缺少适当的内存可用性检查而导致缓冲区溢出。 该漏洞引起了开发人员的注意 他在syzbot中组织了有关vgacon代码的模糊测试。
除此之外 进一步的验证显示出更多问题 vgacon代码和fbcon控制器中的置换软件实现问题类似。
不幸的是, 问题代码长时间无人看管, 大概是由于开发人员转而使用图形控制台而停止使用文本控制台这一事实(人们继续使用vgacon和fbcon控制台,但数十年来它们一直不是内核的主要界面,并且已经在诸如控制器内置滚动(Shift + PgUp / PgUp)之类的功能可能需求量不大。
恩埃斯特SENTIDO, Linus Torvalds决定不尝试保留代码 无人认领,但只需将其删除.
最后,要提到的是,如果有需要此功能的用户,则在维护人员准备就绪或想要自行负责维护的情况下,将在控制台中支持滚动的代码将返回到内核。双手,也就是唯一愿意为此付出时间的人。