9 月批次中评级最低的一份公告:ghsa-ch8v-r6jh-4vvr 显示 filter_sanitize_encoded 过滤器在处理 0xff 字节时未正确编码,评级 low。属于过滤器行为的边界缺陷,随常规版本升级即可解决。

▲ 事件来源页面实时截图:php/php-src Security Advisories
影响与处置
影响显式使用该过滤器的应用。低危项不值得单独排期,随所在分支升级到最新补丁版本即可覆盖。
查表少一项的后果
php_filter_encode_url() 通过一张 256 项查找表决定哪些字节需要百分号编码,但只初始化了前 255 项。第 255 项读到的是未初始化内存,于是 0xFF 是否被编码取决于栈上残留的值——同一份输入在不同请求里可能得到不同结果。
为什么评级只有 Low
要利用需要应用把 FILTER_SANITIZE_ENCODED 的输出直接拼进安全敏感的上下文,且攻击者能控制出现 0xFF 的字节,门槛较高,官方评为 Low。修复后 0xFF 被统一显式编码。仍建议审计所有把「过滤」当作「转义」使用的代码,输出编码与输入过滤不能互相替代。
修复补丁(官方提交)
该问题由 php-src 官方提交 7ac9700d0d46 修复(2026-07-29),提交说明为「Fix GHSA-ch8v-r6jh-4vvr: encode 0xFF in FILTER_SANITIZE_ENCODED」。改动涉及 2 个源码/测试文件,核心变更如下:
ext/filter/sanitizing_filters.c @@ -66,7 +66,7 @@ static void php_filter_encode_url(zval *value, const unsigned char* chars, const unsigned char *e = s + char_len; zend_string *str; - memset(tmp, 1, sizeof(tmp)-1); + memset(tmp, 1, sizeof(tmp)); while (s <p style="text-align: center; color: #888; font-size: 13px;">▲ 补丁片段摘自 php-src 官方仓库该提交</p> <p>完整补丁与测试用例可在 php-src 仓库该提交页面查看:https://github.com/php/php-src/commit/7ac9700d0d46a7b96e72e330efd295a3332124b0</p> <p style="text-align: center;">@@##@@</p><p style="text-align: center; color: #888; font-size: 13px;">▲ 官方公告页配图</p> <p style="text-align: center;">@@##@@</p><p style="text-align: center; color: #888; font-size: 13px;">▲ 官方修复提交页面截图</p> <h2>关键信息</h2>
| 项目 | 内容 |
|---|---|
| 类目 | 安全漏洞 |
| 级别 | 常规 |
| 日期 | 2026-09-24 |
| 关联编号 | GHSA-ch8v-r6jh-4vvr |
| 影响范围 | 使用该过滤器的应用 |
| 核验状态 | 已官方确认 |
| 修复提交 | 7ac9700d0d46(php-src) |
来源:https://github.com/php/php-src/security/advisories/GHSA-ch8v-r6jh-4vvr












