在GDM中发现了一个漏洞

安全研究员 通过GitHub 广为人知 最近 您已经确定了一个漏洞 GNOME显示管理器(GDM)中的(CVE-2020-16125),它负责显示登录屏幕。

结合另一个漏洞 在帐户跟踪服务(accounts-daemon)中, 该问题允许代码以root身份运行。  如果无法通过DBus访问帐户守护程序服务,则该漏洞与初始配置实用程序的错误启动有关。

关于漏洞

无特权的用户可能会使accounts-daemon进程崩溃 或挂断电话, 什么会创造条件 从GDM运行gnome-initial-setup实用程序,新用户可以通过该实用程序注册为sudo组的成员,即具有以root用户身份运行程序的能力。

通常情况下, GDM调用gnome-initial-setup设置第一个用户 如果系统中没有帐户。 通过联系accounts-daemon来验证帐户是否存在。 如果指定的过程失败,则GDM会假定帐户丢失,并开始初始配置过程。

研究人员确定了两种破坏守护程序帐户过程的方法-第一个(CVE-2020-16126)是由于不正确的权限重置引起的,第二个(CVE-2020-16127)是由于在处理“ .pam_environment”文件时发生的错误。

另外, 在守护程序帐户中发现了另一个漏洞 (CVE-2018-14036) 由不正确的文件路径检查引起的,并允许在系统上读取任意文件内容.

account-daemon中的漏洞是由Ubuntu开发人员所做的更改引起的,不会出现在FreeDesktop项目和Debian软件包的main account-daemon代码中。

CVE-2020-16127问题存在于Ubuntu中的一个补丁中,该补丁实现了is_in_pam_environment函数,该函数从用户的主目录读取.pam_environment文件的内容。 如果将符号链接放置到/ dev / zero而不是此文件,则帐户守护程序进程将挂起无限读取操作,并停止通过DBus响应请求。

现代操作系统中的漏洞如此容易被利用是不寻常的。 在某些情况下,我已经编写了数千行代码来利用漏洞。 

大多数现代漏洞利用方法都涉及复杂的技巧,例如使用内存破坏漏洞欺骗堆中的伪造对象,或将符号链接替换为微秒精度的符号链接以利用TOCTOU漏洞。 

因此,近来很少发现不需要编码技能即可利用的漏洞。 我还认为,即使您不了解Ubuntu的工作原理或在安全研究方面的经验,该漏洞也很容易理解。

CVE-2020-16126漏洞是由另一个补丁引起的 这会在处理某些DBus调用(例如org.freedesktop.Accounts.User.SetLanguage)时重置当前用户的特权。

帐户守护程序进程通常以root用户身份运行,从而阻止了普通用户发送信号。

但是由于添加了补丁, 进程权限可以重置 用户可以通过发送信号来结束此过程。 要执行攻击,只需创建条件以删除特权(RUID)并将SIGSGV或SIGSTOP信号发送到帐户守护进程。

用户结束图形会话并转到文本控制台 (Ctrl-Alt-F1)。
图形会话结束后,GDM尝试显示登录屏幕,但是在尝试从accounts-daemon获得响应时挂起。

SIGSEGV和SIGCONT信号从控制台发送到account daemon进程,导致其挂起。

您还可以在退出图形会话之前发送信号,但是必须延迟一段时间才能有时间完成会话,并且在发送信号之前,GDM有时间开始。

对GDM中的帐户守护程序的请求失败,并且GDM调用实用程序gnome-initial-setup,在其界面中足以创建新帐户。

该漏洞已在GNOME 3.36.2和3.38.2中修复。 在Ubuntu及其衍生版本中已确认对该漏洞的利用。

数据来源: https://securitylab.github.com


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。