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: The "rollback" feature could be passed a specially crafted parameter that allowed an attacker to view the contents of arbitrary pages, regardless of whether they had permissions to do so.
 * CVE-2021-44857: The "mcrundo" and "mcrrestore" actions ( and  ) did not properly check for editing permissions, and allowed an attacker to take the content of any arbitrary revision and save it on any page of their choosing. This affects both public wikis and public pages on private wikis.

I don't have time to patch, how do I disable this?
Add the following to your LocalSettings.php:

If your wiki is private (requires login to view pages) you will also need to set:

It should fully disable the vulnerable code. These changes will also work for vulnerable end-of-life MediaWiki versions that do not have a patch available.

If you used to allow logged-out users to see the main page with help text, you should instead move that help text to the MediaWiki:Loginreqpagetext message, which is shown on the "login required" error.

Was I affected?

 * If your wiki is public (anyone can read pages): yes
 * If your wiki is private, and or  has at least one page: yes

If you use an extension like Lockdown or Whitelist Pages to make some pages unreadable to some users, you are also likely affected.

What versions are vulnerable?
All MediaWiki versions since 1.23.0 are vulnerable to the private wiki read permissions bypasses (CVE-2021-44858, CVE-2021-45038).

All MediaWiki versions since 1.32.0 are vulnerable to the editing permissions bypass. (CVE-2021-44857).

How is this being fixed long-term?
All actions except "view" now require an explicit "read" user right. This is similar to permission checks used in the Action and REST APIs. If further vulnerabilities are found in actions, they will at least not be exploitable by logged-out users on private wikis.

Actions that need to be usable on pages can override the new  function.

How can I see if someone exploited it on my wiki?
Look for  or   in your access logs. Unless you specifically enabled an extension that uses multi-content revisions, there is no legitimate use for these actions.

In addition, look for  requests and check whether the revision IDs belong to a different title than the page being edited.

For the rollback bug, look for  where the "from" parameter is a template transclusion (for example,  ).

This bug does not cause any data loss, so any write actions an attacker could have taken will be recorded in page history like all other edits.

Credit
The issue was discovered by Dylsss, many thanks to them for identifying and reporting the issue. If you find a bug in MediaWiki, please see the process for reporting security bugs.