dudu88485n-ctrl/Typecho-GetText-eval-RCE-PoC

GitHub: dudu88485n-ctrl/Typecho-GetText-eval-RCE-PoC

该项目是 Typecho GetText Plural-Forms eval() 远程代码执行漏洞(CWE-95)的概念验证与安全公告,包含漏洞分析、PoC 脚本及修复方案。

Stars: 0 | Forks: 0

# Typecho GetText Plural-Forms eval() 远程代码执行 ## 概述 Typecho v1.3.0 及更早版本中存在一个代码注入漏洞 (CWE-95)。GetText 国际化模块使用 PHP 的 `eval()` 来动态执行从 MO 翻译文件中提取的 Plural-Forms 表达式,且未进行任何过滤处理。 **CVSS 3.1**: 7.2 高危 — `AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H` ## 受影响的代码 - **文件**: `var/Typecho/I18n/GetText.php` - **函数**: `selectString()` (第 371 行) — `eval("$string")` - **函数**: `getPluralForms()` (第 396 行) — 未经过滤的正则提取 ## 快速开始 ### 验证 (PHP) ``` php verify_eval_injection.php ``` ### 构建恶意 MO 文件 ``` python3 build_malicious_mo.py ``` ## 漏洞链 ``` _n() → I18n::ngettext() → GetTextMulti::ngettext() → GetText::ngettext() → selectString() → getPluralForms() [extracts Plural-Forms header from MO file] → str_replace() [variable substitution] → eval("$string") [ATTACKER CODE EXECUTED] ``` ## 修复方案 使用安全的表达式解析器替换 `eval()`,或对 Plural-Forms 表达式实施严格的白名单验证。 ## 披露时间线 | 日期 | 事件 | |------|-------| | 2026-05-28 | 发现漏洞 | | 2026-05-28 | PoC 验证通过 | | 待定 | 分配 CVE | | 待定 | 通知厂商 | ## 许可证 本仓库仅供安全研究目的使用。
标签:CISA项目, Go语言工具, Maven, OpenVAS, PHP, RCE, Typecho, 漏洞验证, 逆向工具