CVE-2025-63914 的公开披露与补丁:Cinnamon/kotaemon 中的 ZIP 炸弹漏洞。
Wang Yuanrong
_may_extract_zip 函数未对 ZIP 解压缩施加限制,使恶意的 ZIP 炸弹能够触发过多的资源消耗并导致拒绝服务。
\libs\ktem\ktem\index\file\ui.py 文件中的 _may_extract_zip 函数未检查上传 ZIP 文件的内容。尽管这些内容会被解压到一个临时文件夹中(该文件夹在每次解压前会清空),但成功上传一个 ZIP 炸弹仍可能导致服务器在解压过程中消耗过多资源。此外,如果之后没有继续上传其他文件,解压出的数据可能会占用磁盘空间,并可能导致系统不可用。任何拥有文件上传权限的人都可以执行此攻击。
使用以下命令拉取并运行最新镜像:
docker run \
--name kotaemon \
-e GRADIO_SERVER_NAME=0.0.0.0 \
-e GRADIO_SERVER_PORT=7860 \
-v /home/kali/ktem_app_data/:/app/ktem_app_data \
-p 7860:7860 -d \
ghcr.io/cinnamon/kotaemon:0.11.0-full
创建一个由重复字节组成的高可压缩负载,以实现极端的压缩比。

在此过程中,我们可能会注意到由于资源消耗导致的变慢,并且可以检查临时目录的大小。

即使没有上传其他文件,这种资源占用也会持续存在。
拥有文件上传权限的攻击者可以提交一个精心构造的 ZIP 压缩包,导致磁盘、CPU 和内存不受控制地消耗,从而引发服务崩溃或主机中断。所有实例(包括最新版本 0.11.0)均受影响。
本仓库提供了针对版本 0.11.0 的测试 ZIP 炸弹及相应补丁。
补丁概览:
extractall 替换为流式解压。应用补丁后,当提交 ZIP 炸弹时会弹出警告,并且操作将被拒绝:
