此漏洞通过路径遍历和本地文件包含漏洞的组合实现WorePress核心中的远程代码执行,据漏洞发布者ripstech透露,此漏洞已在WordPress核心中存在6年以上。
权限需求
author及以上权限,相对来说,权限需求不算高,很多小型协作内容输出小社区诸如乐谱站会较为常用wordpress,而后给予普通作者author权限。
影响范围
因WordPress 4.9.9和5.0.1其他安全补丁所致,文件包含漏洞仅有5.0.0单一版本可利用,而路径遍历漏洞仍可使用且当前仍未打补丁。任何安装了此插件的WordPress站点都会错误地处理Post Meta条目,这样仍然可以进行利用。
漏洞基础
将图像上传到WordPress安装时,首先将其移动到uploads目录(wp-content/uploads)。WordPress还将创建对数据库中图像的内部引用,以跟踪元信息,例如图像的所有者或上传的时间。
该属性作为Post Meta条目存储在数据库中。这些条目中的每一个都是键/值对,分配给某个ID。譬如:
在此示例中,图像已分配给post_ID 50.倘若用户希望将来使用或编辑具有所述ID的图像,WordPress将查找匹配的_wp_attached_file条目并使用它的值以便在wp-content/uploads目录中查找该文件。
漏洞构成
本地文件包含部分
WordPress 4.9.9和5.0.1之前的这些Post Meta条目的问题在于可以修改任何条目并将它们设置为任意值。
当图像被更新时(例如,它的描述被改变),该edit_post()函数被调用。该函数直接作用于$_POST数组。