CVE-2017-14723漏洞出现在WordPress 4.8.2及更早版本中,因为

$wpdb->prepare()

创建可能导致 SQL 攻击的“意外和不安全的查询”。

这个漏洞的成因是什么?

根据 WordPress 命令,WordPress 核心不会立即面临风险,但新版本将增加额外的保护措施,以防插件或主题意外触发此漏洞。

Anthony Ferrara 于 9 月 20 日在 HackerOne 平台上报告了此问题。 WordPress 的开发者已经尝试在 4.8.2 版本中修复这个 bug,但是并没有提供内核安全性。该更新影响了许多网站的功能,可能危及超过 120 万行代码。

发帖后的第二天,Ferrara 报告了一个错误,但他的请求被忽略了数周。 仅五个星期后,在 Ferrara 通知 WordPress 团队他将公开披露该问题后,他们才能够就公开声明的时间达成一致。

WordPress 已与 Ferrara 合作发布了一个修复程序,可以更轻松地解决此问题。不过,按照同费拉拉的说法,这还不足以解决之前补丁带来的问题。

问题的可能解决方案

Ferrara 指出:

当前补丁完全去掉了prepare机制,返回一个SQL查询字符串。 做其他人做的事:返回表达式或查询对象,或直接执行查询。这样,您将无法复制字符串。

需要注意的是,这个方案会给WP带来重大的变化。

无需一次更改所有内容 – 您可以开发与现有 API 并行的替代解决方案。这将是有问题的,但也是必要的。

现有的 API 不安全。这并不意味着它受到攻击,而是需要紧急返工。

“危险较小,”费拉拉补充道。 – 起初,合作前景并不乐观,但多年来有所改善。 如果过去 6 周让我失望,现在我希望一切顺利。