Flatpak 可能允许某些应用程序访问沙盒外的文件(CVE-2024-42472)
CVE编号
CVE-2024-42472利用情况
暂无补丁情况
N/A披露时间
2024-08-16漏洞描述
Flatpak是一个Linux应用程序的沙箱和分发框架。在版本低于1.14.0和低于1.15.10的版本中,恶意或受到攻击的Flatpak应用程序可以使用持久目录访问并写入其本应无法访问的文件,这是一种对完整性和保密性的攻击。当应用程序权限中使用`persistent=subdir`时(在命令行接口中表示为`--persist=subdir`),这意味着一个原本无法访问真实用户主目录的应用程序将会看到一个带有可写入的子目录`subdir`的空主目录。实际上,这个目录是一个绑定挂载,数据存储在应用目录中,路径为`~/.var/app/$APPID/subdir`。这使得那些不知道应用目录的应用程序仍然可以在没有通用主目录访问权限的情况下按预期工作。然而,应用程序具有写入应用目录的权限,该目录存储在此处。如果持久或持久选项的源目录被替换为符号链接,则在应用程序下次启动时,绑定挂载将遵循符号链接并将它指向的内容挂载到沙箱中。通过应用提交者ceec2ffc和98f79773中的补丁对Flatpak进行修补可以提供对此漏洞的部分保护。然而,这留下了一个竞态条件,可能被两个并行运行的恶意应用程序实例所利用。要消除竞态条件,需要更新或修补Flatpak使用的bubblewrap版本,添加新的`--bind-fd`选项并使用补丁,然后修补Flatpak以使用它。如果Flatpak在构建时通过`-Dsystem_bubblewrap=bwrap`(适用于版本1.15.x)或`--with-system-bubblewrap=bwrap`(适用于版本1.14.x或更早版本)等选项进行配置,那么需要修补的系统版本的bubblewrap是单独分发的,通常是`/usr/bin/bwrap`。这是Linux发行版通常使用的配置。如果Flatpak在构建时通过`-Dsystem_bubblewrap=`(适用于版本1.15.x)或`--without-system-bubblewrap`(适用于版本1.14.x或更早版本)等选项配置时没有使用系统版本的bubblewrap,那么需要修补的是包含在Flatpak中的捆绑版本的bubblewrap,通常安装在`/usr/libexec/flatpak-bwrap`。从源代码构建时默认会使用此配置。对于稳定的版本分支1.14.x而言,这些更改包含在Flatpak 1.14.10中。此版本中捆绑的bubblewrap已更新至版本0.6.3。对于开发分支版本1.15.x而言,这些更改包含在Flatpak 1.15.10中。此版本中捆绑的bubblewrap是一个Meson的“包装”子项目,已更新至版本0.10.0。对于版本分支的分支版本(例如版本分支的分支版本)不会针对此漏洞进行更新。长期支持的操作系统发行版应该将个别更改回滚到他们的Flatpak和bubblewrap版本中,或者在稳定性政策允许的情况下更新到更新的版本作为解决方案的一种变通方法,避免使用带有持久权限的应用程序(即避免使用persistent或--persist权限)。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。受影响软件情况
# | 类型 | 厂商 | 产品 | 版本 | 影响面 | ||||
1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
运行在以下环境 | |||||||||
系统 | debian_12 | flatpak | * | Up to (excluding) 1.14.10-1~deb12u1 |
- 攻击路径 N/A
- 攻击复杂度 N/A
- 权限要求 N/A
- 影响范围 N/A
- 用户交互 N/A
- 可用性 N/A
- 保密性 N/A
- 完整性 N/A
CWE-ID | 漏洞类型 |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论