Page MenuHomePhabricator

"Abuse filter protected variables log" reports spurious access to unavailable variables
Closed, ResolvedPublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

  • Create an abuse filter that uses IPReputation variables (or possibly other protected variables). In my test, I used itwiki's filter 785.
  • Test the filter on Special:AbuseFilter/test, i.e. load the filter ID and click "Test", leaving all other fields blank.
  • Go to Special:Log and select "Abuse filter protected variables log".

What happens?:
A large number of new log entries are created (50+ during my test), all stating that you viewed protected variables associated with whoever happened to be in the recent changes during the test.

What should have happened instead?:
Only entries with defined (not null) protected variable values should appear, per T397221.

Other information (browser name/version, screenshots, etc.):

As mentioned in T397221#11239713, this is happening on itwiki, but it took me a while to figure a way to reproduce it. It's confusing because it looks like users are deliberately accessing protected variables of experienced users, bots, or even sysops. Beyond the confusion, this also creates an accountability issue: the log suggests that restricted data was intentionally accessed when in fact it was not. While I understand the motivation behind T397221, IPReputation variables are not even available for most of the users shown in the log, since they're limited to unregistered users or new account creations while logged-out.

Event Timeline

Accidentially reproduced it on itwiki (didn't mean to press the button :D). However, I think the fix should be quick

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

[mediawiki/extensions/AbuseFilter@master] Protected variables log: Don't log when variables have null

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

Change #1224729 merged by jenkins-bot:

[mediawiki/extensions/AbuseFilter@master] Protected variables log: Don't log when variables have null

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

When this is on production, we can check that the given itwiki example is no longer reproducable

I can no longer produce this with the given example