Page MenuHomePhabricator

CVE-2025-62669: UserInfoCard: activeLocalBlocksAllWikis does not do permissions checks
Closed, ResolvedPublic0.5 Estimated Story PointsSecurity

Description

If a target user is suppress blocked on another wiki (not the local one) the activeLocalBlocksAllWikis count will include the suppress blocks, even if your user does not have rights to see the suppress block.

Apparently this is a bug in CentralAuthUser::getBlocks(). For example, it also affects Special:CentralAuth.

Reproduction steps
  1. Login to https://test.wikipedia.org
  2. Enable UIC by submitting https://test.wikipedia.org/wiki/Special:ApiSandbox#action=options&format=json&optionname=checkuser-userinfocard-enable&optionvalue=1
  3. Go to https://test.wikipedia.org/wiki/Special:ListUsers?username=Drwpb2&limit=1
  4. Open your browsers Network tab
  5. Open the UIC icon next to Drwpb2
  6. In the Network tab, there will be a request to test.wikipedia.org/w/rest.php/checkuser/v0/userinfo
  7. Click this and choose the "Response" tab (on Firefox, might be called something different on Chrome)

Expected: In the response there should be a line activeLocalBlocksAllWikis: 0
Observed: Instead it is activeLocalBlocksAllWikis: 1

Environment: https://test.wikipedia.org CheckUser 2.5 (444619c) 16:19, 28 July 2025.

Event Timeline

As a short term fix, I think we should not include any suppressed blocks in CentralAuthUser::getBlocks(). As a longer term fix, after the security issue is patched, we would probably need to make API queries to each wiki that's being queried to check for whether the performing user has permissions to view suppressed blocks.

kostajh set the point value for this task to 0.5.Aug 1 2025, 9:27 AM

Setting 0.5 for the proposed short term fix of excluding suppressed blocks.

OKryva-WMF lowered the priority of this task from High to Medium.

Proposed patch:

+2

We should be able to get this deployed during today's (2025-08-18) security deployment window.

Reedy added a subscriber: gerritbot.

Change #1189183 had a related patch set uploaded (by Reedy; author: Máté Szabó):

[mediawiki/extensions/CentralAuth@master] SECURITY: Exclude suppress blocks in CentralAuthUser::getBlocks()

https://gerrit.wikimedia.org/r/1189183

Change #1189183 merged by jenkins-bot:

[mediawiki/extensions/CentralAuth@master] SECURITY: Exclude suppress blocks in CentralAuthUser::getBlocks()

https://gerrit.wikimedia.org/r/1189183

Change #1189212 had a related patch set uploaded (by Reedy; author: Máté Szabó):

[mediawiki/extensions/CentralAuth@REL1_44] SECURITY: Exclude suppress blocks in CentralAuthUser::getBlocks()

https://gerrit.wikimedia.org/r/1189212

Change #1189213 had a related patch set uploaded (by Reedy; author: Máté Szabó):

[mediawiki/extensions/CentralAuth@REL1_43] SECURITY: Exclude suppress blocks in CentralAuthUser::getBlocks()

https://gerrit.wikimedia.org/r/1189213

Change #1189214 had a related patch set uploaded (by Reedy; author: Máté Szabó):

[mediawiki/extensions/CentralAuth@REL1_39] SECURITY: Exclude suppress blocks in CentralAuthUser::getBlocks()

https://gerrit.wikimedia.org/r/1189214

Change #1189214 abandoned by Reedy:

[mediawiki/extensions/CentralAuth@REL1_39] SECURITY: Exclude suppress blocks in CentralAuthUser::getBlocks()

https://gerrit.wikimedia.org/r/1189214

Change #1189212 merged by jenkins-bot:

[mediawiki/extensions/CentralAuth@REL1_44] SECURITY: Exclude suppress blocks in CentralAuthUser::getBlocks()

https://gerrit.wikimedia.org/r/1189212

Change #1189213 merged by jenkins-bot:

[mediawiki/extensions/CentralAuth@REL1_43] SECURITY: Exclude suppress blocks in CentralAuthUser::getBlocks()

https://gerrit.wikimedia.org/r/1189213

Mstyles renamed this task from UserInfoCard: activeLocalBlocksAllWikis does not do permissions checks to CVE-2025-62669: UserInfoCard: activeLocalBlocksAllWikis does not do permissions checks.Oct 18 2025, 5:05 AM
Mstyles changed the visibility from "Custom Policy" to "Public (No Login Required)".
Mstyles changed the edit policy from "Custom Policy" to "All Users".