跳到主要内容
博客安全问题Linode安全摘要 2023年1月21日至28日

2023年1月21日至28日Linode安全摘要

Linode安全摘要

在本周的文摘中,我们将讨论。

  • Sudoedit如何编辑任意文件。
  • Drupal和Git的安全建议;以及 
  • HAProxy中的一个拒绝服务漏洞。

Sudoedit可以编辑任意的文件

CVE ID。CVE-2023-22809

Sudo是一个程序,允许系统管理员给选定的用户以root身份运行命令的能力。Synacktiv发现了这个漏洞。一个绕过sudoers策略的问题可能导致通过使用sudoedit编辑未经授权的文件来实现权限升级。受影响的Sudo版本从1.8.0到1.9.12p1。

在使用sudoedit时,用户通过环境变量选择他们的编辑用户,如SUDO_EDITORVISUALEDITOR。这些变量的内容扩展了传递给sudo_edit()函数的实际命令。A "-"参数是用来确定要编辑的文件列表的。然而,注入一个额外的"-"参数可以改变这个列表,并导致以目标用户的权限编辑任何其他文件,从而导致权限升级。

探测

该漏洞可以通过以用户身份运行以下命令来检测,该用户被授予编辑的文件,如/etc/custom/service.conf,列在/etc/sudoers文件中。

$ cat /etc/sudoers
user ALL=(ALL:ALL) sudoedit /etc/custom/service.conf
[...]

$ EDITOR='vim -- /etc/passwd' sudoedit /etc/custom/service.conf

缓解

除了升级到打过补丁的版本外,还可以通过在使用sudoedit时将受影响的环境变量添加到env_delete拒绝列表中来缓解该漏洞。

Defaults!SUDOEDIT            env_delete+="SUDO_EDITOR VISUAL EDITOR"
Cmnd_Alias SUDOEDIT = sudoedit /etc/custom/service.conf
user                                              ALL=(ALL:ALL) SUDOEDIT

Drupal的安全建议

Drupal已经发布安全公告,解决影响多个产品的漏洞。攻击者可以利用这些漏洞来获取敏感信息。CISA鼓励用户和管理员查看以下Drupal安全公告并应用必要的更新。

Drupal核心 - 信息披露

安全建议代码。sa-core-2023-001

由于媒体库模块中的实体访问检查不当,有编辑内容权限的用户可以看到他们无权访问的媒体项目的元数据。漏洞缓解是可能的,因为无法访问的媒体只对已经可以编辑内容的用户可见,包括一个媒体参考字段。 

无论9.4.x之前的Drupal是否已经报废,我们都建议更新到最新的版本,包括Drupal 10.0.2,Drupal 9.5.2,以及Drupal 9.4.10。

实体浏览器 - 信息披露

安全建议代码。sa-contrib-2023-002

用户可以使用实体浏览器模块的自定义实体浏览器部件从实体参考字段中选择实体。这个漏洞允许有权限编辑内容的用户看到他们无权访问的实体的元数据,因为该模块没有正确检查实体的访问。该漏洞可以通过以下事实得到缓解:无法访问的实体只对已经可以使用实体浏览器编辑内容的用户可见。为了修复该漏洞,如果使用Drupal 9或10的实体浏览器模块,请将实体浏览器升级到8.x-2.9版本。

媒体库区 - 信息披露

安全建议代码。sa-contrib-2023-003

媒体库块模块允许用户在块中呈现媒体实体。如果页面上有一个包含受限媒体项目的块,该模块不恰当的媒体访问检查可能会导致用户看到他们无权访问的媒体。通过删除引用有访问限制的媒体项目的区块来缓解这种未经授权的访问。 如果使用Drupal 9或10的媒体库区块模块,建议将其升级到1.0.4版本以解决这个问题。

媒体库表单 API 元素 - 信息披露

安全建议代码。sa-contrib-2023-004

媒体库表单 API 元素模块允许用户在自定义表单中使用媒体库,而无需媒体库小工具。由于模块的实体访问检查不当,拥有编辑内容权限的用户可能会看到他们无权访问的媒体项的元数据。 通过使无法访问的媒体只对已可编辑包含媒体引用字段的内容的用户可见来缓解漏洞。如果媒体库表单 API 元素模块版本为 8.x-1.* 或 Drupal 9 或 10 的 2.x,建议将模块升级到 2.0.6 版本。

Git安全公告

对Git源代码的安全审计发现了几个漏洞,包括两个严重性的漏洞,可能允许攻击者在成功利用基于堆的缓冲区溢出弱点后执行任意代码。这两个严重漏洞在Git的v2.30.7, v2.31.6, v2.32.5, v2.33.6, v2.34.6, v2.35.6, v2.36.4, v2.37.5, v2.38.3, 和 v2.39.1版本中得到修补。

`git archive`、`git log -format`中的堆溢出,导致RCE

CVE ID。CVE-2022-41903

git log可以用-format指定符显示任意格式的提交。带有export-substgitattribute 的 gitarchive也有这个功能。当处理padding运算符时,在pretty.c format_and_pad_commit()函数中,一个size_t 变量被不适当地存储为int,然后它被作为偏移量加入到下面的memcpy()调用中。攻击者可以通过运行git log -format=...来调用提交格式,或通过运行带有export-subst属性的git archive来启动溢出,该属性会扩展文件的格式指定符。整数溢出可以通过向内存写入任意代码而导致远程代码执行。

变通方法

建议将Git升级到最新的版本,这样可以完全修复该漏洞。如果升级不适用,用户不应该在一个不受信任的仓库上运行git archive。如果 git archive 是通过git daemon暴露的,运行git config -global daemon.uploadArch false 来禁用该命令。

gitattributes解析中的整数溢出

CVE ID。CVE-2022-23521

Git允许用户通过在仓库中添加一个.gitattributes文件来定义路径的属性,该文件包含一组文件模式和应该为那些匹配该模式的文件设置的属性。在解析属性时,有几个条件可以使整数溢出发生。

  • 当有过多的路径模式时。
  • 当一个单一模式有许多属性时。
  • 当声明的属性的名称是广泛的。

当精心制作的.gitattributes文件是提交历史的一部分时,溢出就会被触发。当解析文件中的gitattributes时,超过2KB的行会被无声地分割,而不是从索引中分割。因此,当该文件存在于索引、工作树或两者中时,就会发生故障。该漏洞可能导致任意的头部读取和写入,导致远程代码执行。

变通方法

没有公布适用的解决方法。唯一的解决方法是将Git升级到列出的最新补丁版本。

HAProxy的拒绝服务漏洞

CVE ID。CVE-2023-0056

HAProxy是一个用于HTTP应用的高可用性服务器负载平衡器。由于http_wait_for_response()函数中的意外标志处理失败,可能导致进程崩溃,因此存在这一漏洞。因此,该漏洞允许攻击者进行拒绝服务攻击。 

HAProxy的漏洞版本从2.0.0到2.7.0。2.5.11、2.6.8和2.7.2版本的漏洞补丁。但是,2.0.x到2.4.x的固定版本还没有发布。


注释

留下回复

您的电子邮件地址将不会被公布。 必须填写的字段被标记为*