Page MenuHomePhabricator

CVE-2024-40606: Special:CheckUser 'Get users' shows hidden usernames to those who do not have the rights to see it
Closed, ResolvedPublic2 Estimated Story PointsSecurity

Description

If a user with the checkuser group but not the suppressor group runs a 'Get users' check using Special:CheckUser on an IP address that the hidden user has used, they can see the username of the hidden user in the results list.

For example:

The block entry with hideuser setThe user appearing in the results list for a user without the suppressor groupThe contributions page for that hidden user
image.png (96×1 px, 39 KB)
image.png (280×1 px, 68 KB)
image.png (304×1 px, 28 KB)
Steps to reproduce
  1. Block a user with hideuser enabled using an account with the suppressor group
  2. Log into an account with just the checkuser group
  3. Run a 'Get users' check in Special:CheckUser on the IP address used by the account that was blocked in step 2
  4. Search for the username of the blocked user

What happens
The username of the hidden user is shown

What should happen
The username of the hidden should not be visible on the page and is replaced with username hidden

QA Results - Local

Event Timeline

Dreamy_Jazz set the point value for this task to 2.Apr 1 2024, 4:30 PM

As this fix has been deployed to production and the CheckUser extension is not in the tarball, the fix can be uploaded to gerrit now as done for previous CheckUser security bugs. To avoid merge conflicts and to allow QA sooner than later, I will do that.

Change #1016763 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@master] SECURITY: Hide hideuser blocked users in 'Get users'

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

Change #1016763 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] SECURITY: Hide hideuser blocked users in 'Get users'

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

Change #1016777 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@REL1_41] SECURITY: Hide hideuser blocked users in 'Get users'

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

Change #1016779 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@REL1_40] SECURITY: Hide hideuser blocked users in 'Get users'

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

Change #1016780 had a related patch set uploaded (by Dreamy Jazz; author: Dreamy Jazz):

[mediawiki/extensions/CheckUser@REL1_39] SECURITY: Hide hideuser blocked users in 'Get users'

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

Change #1016777 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@REL1_41] SECURITY: Hide hideuser blocked users in 'Get users'

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

Change #1016779 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@REL1_40] SECURITY: Hide hideuser blocked users in 'Get users'

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

Change #1016780 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@REL1_39] SECURITY: Hide hideuser blocked users in 'Get users'

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

mmartorana changed the task status from Open to In Progress.Apr 4 2024, 2:24 PM
mmartorana triaged this task as Medium priority.

I have removed the patch from the deployment server since it got merged and made its way to the MediaWiki deployment train this week.

@Dreamy_Jazz The username is not shown when you just have check user rights but not suppressor, as seen in the screenshots below. I will move this to Done. Thanks for all your work and steps!

Status: ✅PASS
Environment: Local: 1.43.0-alpha (da9ac63) 17:05, 9 April 2024; Checkuser: 2.5 (eda557a) 19:43, 9 April 2024
OS: macOS Sonoma 14.4.1
Browser: Chrome 123, Firefox 123, Safari 17.3
Skins. Vector 2022, Vector 2010, Minerva, Monobook, Timeless
Device: MBA M2
Emulated Device:: n/a
Test Links:
Special:Checkuser
Special:CheckUserLog
Special:Contributions
Special:Investigate
http://localhost:8080/wiki/Cat

✅AC1: https://phabricator.wikimedia.org/T361293

RightsUser RightsSpecial:CheckuserSpecial:ContributionsSpecial:CheckUserLogSpecial:Investigate
Checkuser & Suppressor
2024-04-10_09-47-55.png (441×3 px, 132 KB)
2024-04-10_09-48-41.png (1×3 px, 277 KB)
2024-04-10_09-48-59.png (303×3 px, 99 KB)
2024-04-10_11-16-32.png (667×3 px, 169 KB)
2024-04-10_11-33-37.png (613×3 px, 159 KB)
Just Checkuser
2024-04-10_09-47-31.png (438×3 px, 134 KB)
2024-04-10_09-45-10.png (1×3 px, 305 KB)
2024-04-10_09-41-16.png (400×3 px, 96 KB)
2024-04-10_11-16-12.png (670×3 px, 165 KB)
2024-04-10_11-32-52.png (609×3 px, 162 KB)
mmartorana renamed this task from Special:CheckUser 'Get users' shows hidden usernames to those who do not have the rights to see it to CVE-2024-40606: Special:CheckUser 'Get users' shows hidden usernames to those who do not have the rights to see it.Jul 8 2024, 5:32 PM
mmartorana changed the visibility from "Custom Policy" to "Public (No Login Required)".Jul 10 2024, 8:50 AM