PostgreSQL 近期披露的 CVE-2026-15742 是个高危漏洞,影响安装了 fuzzystrmatch 扩展的实例。这个扩展常被用在模糊匹配、相似度搜索场景(levenshtein、soundex、metaphone),很多业务库装了之后就忘了它的存在——这正是风险所在:你可能根本不记得自己装过它。
受影响版本
以下修复版本之前的版本均受影响:
| 大版本 | 修复版本 |
|---|---|
| 18 | 18.6 |
| 17 | 17.11 |
| 16 | 16.15 |
| 15 | 15.19 |
| 14 | 14.24 |
| 13 及以下 | 已 EOL,视为受影响 |
两条 SQL 自查
-- 1. 是否安装了 fuzzystrmatch
SELECT extname, extversion FROM pg_extension WHERE extname = 'fuzzystrmatch';
-- 2. 当前版本
SHOW server_version;
第一条有返回、且第二条版本低于上表对应修复版本 → 受影响,安排升级。
修复与缓解
- 根治:升级到上表中的修复版本(小版本升级通常不需要停机太久,但先在测试环境验证)。
- 临时缓解:如果业务暂时无法升级,评估是否可以先
DROP EXTENSION fuzzystrmatch(确认没有对象依赖它)。 - 13 及以下大版本已经 EOL,没有修复版本,只能升级大版本。
dbcheck 已内置这项检查
dbcheck 的 PostgreSQL 引擎已加入 CVE-2026-15742 规则:上传 pg_check.sh 采集包,自动检测 fuzzystrmatch 安装情况与版本,命中即报高危并给出修复版本。版本未知时不误报——这是我们有意为之的:巡检工具的第一原则是不制造噪音。