3/5/2026 at 6:24:25 PM
See the public phab ticket: https://phabricator.wikimedia.org/T419143In short, a Wikimedia Foundation account was doing some sort of test which involved loading a large number of user scripts. They decided to just start loading random user scripts, instead of creating some just for this test.
The user who ran this test is a Staff Security Engineer at WMF, and naturally they decided to do this test under their highly-privileged Wikimedia Foundation staff account, which has permissions to edit the global CSS and JS that runs on every page.
One of those random scripts was a 2 year old malicious script from ruwiki. This script injects itself in the global Javascript on every page, and then in the userscripts of any user that runs into it, so it started spreading and doing damage really fast. This triggered tons of alerts, until the decision was made to turn the Wiki read-only.
by tux3
3/5/2026 at 9:31:49 PM
This is a pretty egregious failure for a staff security engineerby Ferret7446
3/5/2026 at 9:48:10 PM
Pretty much the definition of a “career limiting event”by mcmcmc
3/5/2026 at 10:31:17 PM
It's either a a Career Limiting Event, or a Career Learning event.In the case of a Learning event, you keep your job, and take the time to make the environment more resilient to this kind of issue.
In the case of a Limiting event, you lose your job, and get hired somewhere else for significantly better pay, and make the new environment more resilient to this kind of issue.
Hopefully the Wikimedia foundation is the former.
by modderation
3/5/2026 at 10:13:35 PM
Nobody is going to know who did this, so probably not career limiting in any major way.by radicaldreamer
3/5/2026 at 10:20:09 PM
They named him in the support ticket linked here somewhere.> sbassett
by xeromal
3/5/2026 at 10:02:56 PM
They'll be fine, recruiters don't look this stuff up and generally background checks only care about illegal shit.by xvector
3/5/2026 at 9:50:27 PM
[flagged]by pocksuppet
3/5/2026 at 9:55:04 PM
Is ok, the AI was going to replace them in a few weeks anyway.by adxl
3/5/2026 at 6:41:10 PM
Didn't realise this was some historic evil script and not some active attacker who could change tack at any moment.That makes the fix pretty easy. Write a regex to detect the evil script, and revert every page to a historic version without the script.
by londons_explore
3/5/2026 at 9:12:21 PM
Letting ancient evil code run? Have we learned nothing from A Fire Upon the Deep?!by jl6
3/5/2026 at 9:58:11 PM
"It was really just humans playing with an old library. It should be safe, using their own automation, clean and benign.This library wasn't a living creature, or even possessed of automation (which here might mean something more, far more, than human)."
by HoldOnAMinute
3/5/2026 at 10:04:31 PM
Link to the Prologue of Fire Upon the Deep: https://www.baen.com/Chapters/-0812515285/A_Fire_Upon_the_De...It's very short and from one of my favorite books. Increasingly relevant.
by varenc
3/5/2026 at 9:48:07 PM
I've only just heard of it. But, I already knew to not run random scripts under a privileged account. And thank you for the book suggestion - I'm into those kinds of tales.by edoceo
3/5/2026 at 10:15:03 PM
I love that bookby xeromal
3/5/2026 at 10:17:47 PM
Or just restore from backup across the board. Assuming they do their backups well this shouldn't be too hard (especially since its currently in Read Only mode which means no new updates)by Melatonic
3/5/2026 at 9:55:39 PM
Are you sure? Are you $150 million ARR sure? Are you $150 million ARR, you'd really like to keep your job, you're not going to accidentally leave a hole or blow up something else, sure?I agree, mostly, but I'm also really glad I don't have to put out this fire. Cheering them on from the sidelines, though!
by observationist
3/5/2026 at 7:23:19 PM
True but it does say something that such a script was able to lie dormant for so long.by jacquesm
3/5/2026 at 8:48:17 PM
Why would anyone test in production???!!!by outofpaper
3/5/2026 at 9:59:04 PM
There are plenty of ways to safely test in production. For one thing you need to limit the scope of your changes.by HoldOnAMinute
3/5/2026 at 8:53:11 PM
I have never heard of this kind of insane behaviour before.by fifilura
3/5/2026 at 9:34:04 PM
Selecting the wrong environment in your test setup by mistake?I refuse to believe that someone on the security team intentionally tested random user scripts in production on purpose.
by ninth_ant
3/5/2026 at 9:54:46 PM
> I refuse to believe that someone on the security team intentionally tested random user scripts in production on purpose.Do I have a bridge to sell you, oh boy
by irishcoffee
3/5/2026 at 9:48:38 PM
300 million dollar organization btwby davidd_1004
3/5/2026 at 9:54:31 PM
I'm guessing, "1> Hey Claude, your script ran this malicious script!""Claude> Yes, you're absolutely right! I'm sorry!"
by Fokamul
3/5/2026 at 9:35:01 PM
On one hand, I was about to get irrationally angry someone was attacking Wikipedia, so I'm a bit relievedOn the other hand,
>a Staff Security Engineer at WMF, and naturally they decided to do this test under their highly-privileged Wikimedia Foundation staff account
seriously?
by AlienRobot
3/5/2026 at 8:07:37 PM
wait as a wikipedia user you can just put random JS to some settings and it will just... run? privileged?this is both really cool and really really insane
by karel-3d
3/5/2026 at 8:15:59 PM
It's a mediawiki feature: there's a set of pages that get treated as JS/CSS and shown for either all users or specifically you. You do need to be an admin to edit the ones that get shown to all users.by kemayo
3/5/2026 at 8:09:55 PM
Yes, you can have your own JS/CSS that’s injected in every page. This is pretty useful for widgets, editing tools, or to customize the website’s apparence.by hk__2
3/5/2026 at 8:32:43 PM
It sounds very dangerous to me but who am I to judge.by karel-3d
3/5/2026 at 8:56:42 PM
It's nothing.For the global ones that need admin permissions to edit, it's no different from all the other code of mediawiki itself like the php.
For the user scripts, it's no worse than the fact that you can run tampermonkey in your browser and have it modify every page from evry site in whatever way your want.
by Brian_K_White
3/5/2026 at 10:16:02 PM
It is kind of risky - you now have an entire, mostly unreviewed, ecosystem of javascript code, that users can experiment with.However its been really useful to allow power users to customize the interface to their needs. It also is sort of a pressure release for when official devs are too slow for meeting needs. At this point wikipedia has become very dependent on it.
by bawolff
3/5/2026 at 8:42:31 PM
That is how Mediawiki works. Everything is a page, including CSS and JS. It is not really different than including JS in a webpage anywhere else.by corndoge