What makes this even more sneaky is that JetBrains has a theme called “Darcula”.
So, with a wider generic theme called Dracula and themes that duplicate JetBrains Darcula theme, it is no surprise that “Darcula Official” is being installed.
It’s more than just a typosquatEdit:
But why can a theme make web requests?!But why can a theme make web requests?!
Because we live in a broken world and nothing matters.
On a more serious note, it’s a pretty horrifying misfeature. What’s even more worrying is that by all appearances Microsoft doesn’t give a shit, if they apparently didn’t even bother removing the malicious extensions that were reported. Not that I’m surprised, but still.
But why can a theme make web requests?!
Why can a Word or Excel file execute shell code? Why does M$ SQL Server have xp_cmdshell?
Because we live in a broken world and nothing matters.
Because devs chose to live in this part of the world, dictated by M$ and other large companies, who just don’t care.
But why can a theme make web requests?!
To display ads on your ide
All malicious extensions detected by the researchers were responsibly reported to Microsoft for removal. However, as of writing this, the vast majority remains available for download via the VSCode Marketplace.
Ah, the Microsoft tradition of always having the wrong priorities.
Ah, the Microsoft tradition of always having the wrong priorities.
I wouldn’t be too hard on Microsoft. The requirement to curate public package repositories only emerged somewhat recently, as demonstrated by the likes of npm, and putting in place a process to audit and pull out offending packages might not be straight-forward.
I think the main take on this is to learn the lesson that it is not safe to install random software you come across online. Is this lesson new, though?
I think the main take on this is to learn the lesson that it is not safe to install random software you come across online. Is this lesson new, though?
I think people often have a vaguely formed assumption that plugins are somehow sandboxed and less dangerous. But that all depends on the software hosting the plugin. There was a recent issue with a KDE theme wiping a user’s files which brought this to light. We can’t assume plugins or themes are any less dangerous than random executables.
Hold them all to account, no single points of failure. Make them all responsible.
When talking about vscode especially, those users aren’t your mum and dad. They’re technology professionals or enthusiasts.
With respect to vendors (Microsoft) for too long have they lived off an expectation that its always a end user or publisher responsibility, not theirs when they’re offering a brokering (store or whatever) service. They’ve tried using words like ‘custodian’ when they took the service to further detract from responsibility and fault.
Vendors of routers and firewalls and other network connected IoT for the consumer space now are being legislatively enforced to start adhering to bare minimum responsible practices such as ‘push to change’ configuration updates and automated security firmware updates, of and the long awaited mandatory random password with reset on first configuration (no more admin/Admin).
Is clear this burden will cost those providers. Good. Just like we should take a stance against polluters freely polluting, so too should we make providers take responsibility for reasonable security defaults instead of making the world less secure.
That then makes it even more the users responsibility to be responsible for what they then do insecurely since security should be the default by design. Going outside of those bounds are at your own risk.
Right now it’s a wild West, and telling what is and isn’t secure would be a roll of the dice since it’s just users telling users that they think it’s fine. Are you supposed to just trust a publisher? But what if they act in bad faith? That problem needs solving. Once an app/plugin/device has millions of people using it, it’s reputation is publicly seen as ok even if completely undeserved.
Hmm rant over. I got a bit worked up.
Remembering ActiveX Controls, the Web’s Biggest Mistake: https://www.howtogeek.com/717016/remembering-activex-controls-the-webs-biggest-mistake/
I remember seeing a lot about activeX controls as a kid but not understanding them much. As an adult reading this I was like “were they a way to run arbitrary code on a user’s computer?”
Yes, they were a way to run arbitrary code on a user’s computer.
Remembering ActiveX Controls, the Web’s Biggest Mistake:
Running JavaScript everywhere is looming as one of the biggest screwups in InfoSec. What do userscript extensions like Grease monkey teach us?
Is there a list of the malicious extensions? What should be done if we ha e malicious ones installed?
It sounds like it’s mostly typosquatting. So just check to be sure you didn’t install something like Pretier instead of Prettier
The researchers are releasing the scanning tool they created for people to be able to run against their own installs.
As far as I know, there is no such list (yet).
What should be done:
Escalate it to the people responsible for IT administration & security in your company or institution. They’ll deal with it.But the default step if you suspect of being infected is not to use the device at all until you got a green light for it from the security/admin folks. Power down, disconnect from any networks, either via physical cables or wireless, unplug external storage devices and wait for further info.
You can’t trust extensions these days.
Or anything that downloads code from an untrusted source…
Gone are my student days where I downloaded whichever cool vim plugins
“Untrusted source” is ambiguous fyi
Thanks for sharing!