Page MenuHomePhabricator

CheckUser IP reveal: Support IP reveal on Special:AbuseLog
Closed, ResolvedPublic

Description

Summary

The AbuseFilter extension provides a custom log page at Special:AbuseLog which does not currently display "Show IP" links for temporary accounts that caused a log entry. We should re-enable the "Show IP" button after fixing it to show the IP associated with the specific AbuseFilter log.

Background

  • We disabled the "Show IP" button Special:AbuseLog in 316f316b16b58f5e35ffb9c73c1c2a2509277e31 because it did not work as intended, only showing the last used IP address
    • This should instead have shown the IP for the specific abusefilter log entry
  • We did not work on fixing this at the time, and it has now been raised as something that patrollers would like to be able to do
  • This is separate from the user_unnamed_ip variable work, because the "Show IP" button would apply to any abusefilter log entry performed by a temporary account
    • This would be similar to the "Show IP" buttons on Special:Log

User story

  • As a patroller, I review the contributions by a temporary account
  • I see no contributions in Special:Contributions, but see actions that were prevented by AbuseFilter in Special:AbuseLog
  • This prevented action was abusive and requires action (such as a block)
  • I want to see the IP address used to perform the prevented actions, to find other temporary accounts which may have performed similar abuse

Technical notes

Acceptance criteria

  • Special:AbuseLog shows a "Show IP" button next to AbuseFilter log entries that were performed by temporary accounts

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
matej_suchanek renamed this task from CheckUser IP reveal: Support IP reveal on Special:AbuseFilterLog to CheckUser IP reveal: Support IP reveal on Special:AbuseLog.Mar 8 2025, 9:01 AM
matej_suchanek updated the task description. (Show Details)
OKryva-WMF triaged this task as Medium priority.Jul 17 2025, 2:51 PM

Change #1171567 had a related patch set uploaded (by Harroyo-wmf; author: Harroyo-wmf):

[mediawiki/extensions/CheckUser@master] ipreveal: Frontend changes supporting IPReveal in Special:AbuseLog

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

I don't know if this change is the problem but since, on fr wikipedia, we have problem to test filters. Sometimes very long (1 minute and over), sometimes so long that the request end with an error, sometimes the test doesn't work : even a simple test as <added_lines irlike "something"> shows a false result when add line "something".

I don't know if this change is the problem but since, on fr wikipedia, we have problem to test filters. Sometimes very long (1 minute and over), sometimes so long that the request end with an error, sometimes the test doesn't work : even a simple test as <added_lines irlike "something"> shows a false result when add line "something".

@Supertoff this change is unlikely to have messed up the test page, because it hasn't been merged yet. Just to make sure, you're talking about using Special:AbuseFilter/test page, right?

I don't know if this change is the problem but since, on fr wikipedia, we have problem to test filters. Sometimes very long (1 minute and over), sometimes so long that the request end with an error, sometimes the test doesn't work : even a simple test as <added_lines irlike "something"> shows a false result when add line "something".

@Supertoff this change is unlikely to have messed up the test page, because it hasn't been merged yet. Just to make sure, you're talking about using Special:AbuseFilter/test page, right?

Yes, you are right.

The latest significant commits to the AbuseFilter extension seem to solely be about protected variables, afl_ip, afl_ip_hex, etc. That's why, as an educated guess, I assumed the regression might have been introduced during the work related to the items from this ticket.

Without access to any error reporting, since it's server-side, it's difficult to do better than educated guessing.

I've reported the issue with /test page in T400673. I was able to reproduce the issue yesterday on plwiki, today it works fine for me. In a local environment I wasn't able to reproduce it in the same version of AbuseFilter as is currently installed on WMF wikis.

The frontend patch was updated based on the feedback provided so far, moving this back to code review.

The patch associated with the frontend subtask for this ticket is being merged right now, so I'm closing that ticket and moving this one QA.

Change #1171567 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] ipreveal: Frontend changes supporting IPReveal in Special:AbuseLog

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

@hector.arroyo When I click Show IP on Special:AbuseLog, in Local Storage on my browser I see an entry for mw-checkuser-temp-<username> but not for _EXPIRY_mw-checkuser-temp-<username>. The latter entry I do see when I click Show IP on Special:RecentChanges (for example). I guess this is something that needs to be set if we want to expire autoreveal correctly?

Change #1180820 had a related patch set uploaded (by Harroyo-wmf; author: Harroyo-wmf):

[mediawiki/extensions/CheckUser@master] ipreveal: Don't provide AF log IDs if AbuseFilter is not loaded

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

I've submitted an additional patch to fix requests to the batch endpoint in case AbuseFilter is not loaded in the wiki making use of IP Reveal, since the new abuseLogIds request parameter won't be recognized as a valid property from the JSON request payload in that case: https://gerrit.wikimedia.org/r/c/mediawiki/extensions/CheckUser/+/1180820

Change #1180820 merged by jenkins-bot:

[mediawiki/extensions/CheckUser@master] ipreveal: Don't provide AF log IDs if AbuseFilter is not loaded

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

Checking https://test.wikipedia.org/wiki/Special:Version, the CheckUser version there is 2.5 (e322528) 10:21, 25 August 2025, which means the latest fix should be deployed there.

Additionally,

So I think QA may be done there. However, I don't have CheckUser permissions on that environment, so I can't verify myself if the fix is working properly there.

@hector.arroyo When I click Show IP on Special:AbuseLog, in Local Storage on my browser I see an entry for mw-checkuser-temp-<username> but not for _EXPIRY_mw-checkuser-temp-<username>. The latter entry I do see when I click Show IP on Special:RecentChanges (for example). I guess this is something that needs to be set if we want to expire autoreveal correctly?

I can no longer reproduce this on https://test.wikipedia.org CheckUser 2.5 (e322528) 10:21, 25 August 2025. I think I am finished here.

@hector.arroyo @dom_walden @Dreamy_Jazz according to dewiki TAIV they can see the "show IP" button in abuse filter logs (previously only visible for admins) but it doesn't show an IP for them – is that intended?

@hector.arroyo @dom_walden @Dreamy_Jazz according to dewiki TAIV they can see the "show IP" button in abuse filter logs (previously only visible for admins) but it doesn't show an IP for them – is that intended?

Thanks for reporting this and apologies for not seeing this sooner. This isn't intentional and I think it has also been reported at T405522: Temporary account IP reveal: Users who lack abusefilter-log-detail right get non-functional IP reveal on Special:AbuseLog.

@hector.arroyo @dom_walden @Dreamy_Jazz according to dewiki TAIV they can see the "show IP" button in abuse filter logs (previously only visible for admins) but it doesn't show an IP for them – is that intended?

Thanks for reporting this and apologies for not seeing this sooner. This isn't intentional and I think it has also been reported at T405522: Temporary account IP reveal: Users who lack abusefilter-log-detail right get non-functional IP reveal on Special:AbuseLog.

Thanks, T405522 is indeed the same issue. I didn't realise it until reading the task but a non-admin TAIV just confirmed that he can access the IP in abuse logs like https://de.wikipedia.org/w/index.php?title=Spezial:Missbrauchsfilter-Logbuch&wpSearchUser=%7E2025-26551-48 because it's a public filter which just requires abusefilter-log-detail (which all autoconfirmed users on dewiki have) while the error message appears when trying to access IPs in abuse logs like https://de.wikipedia.org/w/index.php?title=Spezial:Missbrauchsfilter-Logbuch&wpSearchUser=~2025-64368-1 which requires abusefilter-log-private. I'll continue in the linked task.