Stalin-143/CVE-2026-29905
GitHub: Stalin-143/CVE-2026-29905
Kirby CMS 5.1.4及以下版本的持久化DoS漏洞PoC,通过上传畸形图片文件触发PHP函数返回值未校验导致的致命错误。
Stars: 6 | Forks: 0

# CVE-2026-29905 — Kirby CMS 通过畸形图片上传实现持久化 DoS
## 概述
拥有 **Editor** 权限的认证用户可以上传一个带有图片扩展名的畸形文件,从而导致 Kirby CMS 发生持久化拒绝服务。
**CVE ID:** CVE-2026-29905
**受影响版本:** Kirby CMS ≤ 5.1.4
**修复版本:** Kirby CMS 5.2.0-rc.1
**严重程度:** 中等
**CWE:** CWE-252 (未检查返回值), CWE-20 (输入验证不恰当)
## 描述
Kirby 使用 PHP 的 `getimagesize()` 函数处理上传的图片文件,但未验证其返回值。当上传一个带有有效图片扩展名(例如 `.jpg`)的畸形文件时,`getimagesize()` 会返回 `false` 而不是数组。随后,应用程序在生成缩略图或处理元数据期间会触发致命的 `TypeError`。
这种崩溃在页面重新加载后依然存在,直到从文件系统中手动删除该文件为止。
## 影响
- 任何 Editor 角色(非管理员)用户都可以触发 DoS 状况。
- 受影响的页面将返回 HTTP 500,直到手动删除该文件。
## 修复
已在 [Kirby CMS 5.2.0-rc.1](https://github.com/getkirby/kirby/releases/tag/5.2.0-rc.1) 中修补。
# 参考
- [cve.org 上的 CVE-2026-29905](https://www.cve.org/CVERecord?id=CVE-2026-29905)
- [NVD 上的 CVE-2026-29905](https://nvd.nist.gov/vuln/detail/CVE-2026-29905)
- [GHSA-cw7v-45wm-mcf2](https://github.com/advisories/GHSA-cw7v-45wm-mcf2)
- [PoC – Stalin-143/CVE-2026-29905](https://github.com/Stalin-143/CVE-2026-29905)
- [Kirby CMS 5.2.0-rc.1 发布](https://github.com/getkirby/kirby/releases/tag/5.2.0-rc.1)
- [支持文档](https://drive.google.com/file/d/1MwvvSYIwnC8kOIzjycGMQZw4d2K2ef8h/view?usp=sharing)
## 发现者
**Stalin S** ([@Stalin-143](https://github.com/Stalin-143))
标签:CVE-2026-29905, CWE-20, CWE-252, DoS, getimagesize, HTTP 500, Kirby CMS, PHP漏洞, PoC, 拒绝服务攻击, 持久型DoS, 文件上传漏洞, 暴力破解, 未经检查的返回值, 漏洞分析, 畸形文件上传, 编程工具, 缩略图生成, 路径探测, 身份验证用户, 输入验证不当, 远程代码执行