2021-12 security release/FAQ/zh

MediaWiki中发现了一系列漏洞. 这些漏洞导致攻击者可以通过私人wiki泄露页面内容并绕过编辑权限. 此次wiki泄漏的主要载体是在中列出的页面上使用易受攻击的操作，因此可被公开访问. 默认情况下，MediaWiki现在仅在中的页面上公开“查看”的操作权限. 这些问题在1.35.5、1.36.3和1.37.1版本中得到修复，压缩包和补丁的链接请参阅公告.



有哪些问题？

 * CVE-2021-44858： “撤消”功能 允许攻击者查看任意版本的修订内容，无论他们是否有权限这样做. 在mcrundo和mcrrestore的操作（ 和 ）中也发现了这一点.
 * CVE-2021-45038：“回退”功能（ ）能通过传递一个特殊构建的参数，使攻击者能够查看任意页面的内容，无论他们是否是否有权限这样做.
 * CVE-2021-44857：“mcrundo”和“mcrrestore”功能（ 、 ）没有正确检查编辑权限，允许攻击者获得任意版本的页面内容并保存到他们制定的页面中. 这将会影响到公共wiki站点和私有wiki站点的公共页面.



我没时间打补丁，我如何去禁止这些功能？
把这些添加到您的LocalSettings.php：

如果您的wiki站点是私用的（需要登录才能查看页面），您也需要设置以下配置：

它应该完全禁用易受攻击的代码. 这些更改也适用于没有可用补丁而易受攻击的已结束技术支持的MediaWiki版本.

如果您使用 允许注销的用户查看带有帮助文本的主页，请将这些信息迁移到MediaWiki:Loginreqpagetext中，这个消息页面会展示“需要登录”的错误信息.



我受到影响了吗？

 * 如果您的wiki站点是公用的（任何人都能查看任何页面）：是
 * 如果您的wiki站点是私有的，而且在和设置有页面：是

如果您使用了或者类似的扩展来限制一些用户不能读取一些页面，这可能也会受影响.



哪些版本易受攻击？
自1.23.0版本开始，都会受到CVE-2021-44858、CVE-2021-45038的影响，私有wiki站点的页面读取限制会被绕过.

自1.32.0版本开始，都会受到CVE-2021-44857的影响，页面编辑限制会被绕过.



此问题是如何解决的？如何保证不会复发？
除了“查看”之外的所有操作现在都需要明确的“阅读”用户权限. 这类似于 Action 和 REST API 中使用的权限检查. 如果在这些操作中发现更多漏洞，它们至少不会被私有wiki站点上的登出用户利用.

设置的页面可用的操作能被新的方法所覆盖.



如何查看是否有人在我的wiki站点上利用了它？
检查访问日志有没出现 、 ，除非您启用了multi-content revisions的插件，否则这些参数是没用的.

此外，检查 的请求，检查里面的版本ID对应的来源页面和被编辑页面是不是相同.

对于“回退”功能缺陷，检查 请求， 参数的内容是不是一个模板嵌入的wikicode（例如： ）.

这些错误不会导致任何数据丢失，因此攻击者可能采取的任何写入操作都将像所有其他编辑一样，记录在页面历史记录中.

鸣谢
该问题由Dylsss发现，非常感谢他识别并报告问题. 如果您发现MediaWiki的程序缺陷，请查看报告安全缺陷的处理流程.