So a few months ago we learned that the individual running polyfill.io silently sold the service to an obscure chinese company.

This popular (and well done / very useful) service was created by the Financial Times, who stopped maintaining it and "donated it to the community", meaning that it relied on a few volunteers to continue running it (and on Fastly who provided the hosting for free). 1/7

Maintaining an Open Source project is hard work, lot of pressure, very often no money, and many many people end up being burned out.

Then, sometimes, a company comes up and offers you a large sum of money for it, enough for you to live a better life and never have to feel this pressure, and you accept. This is nowadays very common for browser extensions, can you guess why? 2/7

Browser extensions can have access to a lot of data, including the websites you visit, but they can also inject scripts and other code on the webpages, allowing them to improve your experience. But they can also inject malicious code, and when someone comes out of the blue and offers to “acquire” your extension for a few hundred thousand dollars, they do not really care about your users, but their data… Some examples: https://github.com/extesy/hoverzoom/discussions/670. 3/7
Temptations of an open-source browser extension developer · extesy hoverzoom · Discussion #670

Over the years, I have received many proposals to monetize this extension so I think I'll just start posting them here for fun (but not for profit). The main reason I continue to maintain this exte...

GitHub
To get back to the initial topic, polyfill.io allowed website authors to easily load what we call “polyfills”, little bits of Javascript code implementing specific features in older browsers, so as a developer you can use these modern features without worrying about breaking older devices. And polyfill.io did it in a very nice and performant way, you only needed to add a few lines to your HTML and it worked! 4/7
Now, let’s guess again… What do you think happened once the service was ran by this mysterious chinese owner?
First, the service stopped working, because they switched to a new platform (hosted in China), which made some people in the community notice the change and start asking questions.
Then it spread, and everyone (including me, see https://oisaur.com/@renchap/112011210173426536) recommended you immediately stopped using it. 5/7
Renaud Chaput (@[email protected])

If you are using the polyfill.io service for your website, you may want to reconsider. This was an amazing product, but the last maintainer sold the project and the domain to a China-based company without warning, and the domain is now pointing to a chinese IP running unknown code. Birdside announcement by the project original author: https://twitter.com/triblondon/status/1761852117579427975 More context in a GitHub issue: https://github.com/polyfillpolyfill/polyfill-service/issues/2834

Oisaur

Now, a few months after that, this domain is serving actively malicious Javascript into the websites using it. They inject some malware into websites, redirecting users to sport betting websites. But they could easily also siphon everything your users enter on the website, change their content… 6/7

More details here: https://sansec.io/research/polyfill-supply-chain-attack

Polyfill supply chain attack hits 100K+ sites

The new Chinese owner of the popular Polyfill JS project injects malware into more than 100 thousand sites.

Sansec

This is very unfortunate, but will continue to happen until we figure out how to make money-makers (= companies) properly finance the OSS they are relying upon, and getting maintainers out of burnout.

And if you made it to the end, congratulations! Here is a donation link to send some money to Mastodon, which also suffers from this lack-of-money problem: https://joinmastodon.org/sponsors 7/7

Donate to Mastodon

Donate or become a sponsor and help us build the social web for everyone!

Addentum: this is also a reminder to check what browser extensions you have installed, what permissions they have, and really care about this.

I understand that some decisions by browsers to limit what extensions can do (Chrome Manifest v3 for example) can really be frustrating as they will make extensions like uBlock Origin not work as well, but also keep in mind that this is an open field for malicious actors as well.

@renchap One of the things I am the most stubborn about at work is that we disable users installing browser extensions. We have a tightly managed allowlist and all other extensions are blocked.

Extensions need to be trusted at the level of "I want this extension to see my bank password"... because it probably will.

to my followers: there’s some really important information in this thread if you can disregard the casual anti-chinese racism! sorry to put this in your feeds but the short version is you should probably just uninstall every browser extension.

i turned down a monthly living wage (privilege checked, and no it would not have lasted) for my last extension and i don’t regret it for a second.

@renchap I'm all for funding OSS etc but you could also avoid this quite easily by having self-hosted the code, not loading it from their CDN.

Sites loading things from CDNs they don't control is very very bad.

(There is some mitigation via subresource integrity hashes but still not always used out there in the wild.)

@tomw Agreed, but polyfill.io provided a service you could not easily replace with self-hosted code: the ability to serve a minimal bundle containing the required polyfill, depending on the browser's user-agent.

@renchap Hmm... so SRI would be no good either. I can see why people would want to do this, but just not worth the security trade-off.

(Some hindsight here but hope that today any service that might send some different JS based on user-agent/etc would raise a red flag.)

@renchap good point, just set up a recurring sponsorship 👍

@renchap

Perhaps we should change the open source licensing model in such a way that, as soon as it runs on AWS or Azure, it is not for free anymore.

#opensource #funding #surveillancecapitalism

@voorstad @renchap how about if it runs there it is even more free(as in freedom) you have some closed modules? It's a derivative work, it's under original license, patents? same, and so on
@voorstad @renchap That's exactly what Elasticsearch tried, and now there's Opensearch, which is a fork of Elasticsearch that doesn't have that restriction.
In my corner of the woods, nobody is using Elasticsearch in their cloud deployments, it's all Opensearch. From where I stand, Elasticsearch shot themselves in the foot in a grand way.

@heinragas @renchap

So that is why all the OpenSource licenses itself should change. A fork would have the same restrictions for AWS and Azure then.

(I know it's wishthinking)

@renchap

Genteeeee.
Tem coisas aqui que não entendo bulhufas.
É o mesmo que ler Esperanto.

@renchap A big problem here is web creators being happy to blindly pull content from third party servers that aren't under their control. Damage could be limited by serving known versions of third party content from your own server rather than just allowing the third party to serve up whatever (unauditable) content they like to your users.
@renchap why not, it's payday here I can spare a dollar
@renchap just made a donation through Benevity.
@renchap It seems that the mysterious Chinese company is a networking company that mainly serves gambling websites, btw 🤔

@renchap

Are there any altruistic services out there that scan Google or other indexes of the web to find known JavaScript vulnerabilities like this and notify the owners? Maybe that's just far too big a job.

@nottrobin None that I know, but that would be a lot of work, especially as its not very easy to contact a website owner (no standard way to do it)

@renchap Actually you'd think this might be something Google could provide as a feature for those who have webmaster accounts with them - this must be a high percentage of the non-hobbyist websites out there. It could have a free tier and then charge for websites over a certain click through rate or crawl rate or something.

But I'm not sure Google are really interested in public service innovation any more.

@nottrobin looks like Google did something, for websites using GoogleAds (as they have contact details for those), see https://www.bleepingcomputer.com/news/security/polyfillio-bootcdn-bootcss-staticfile-attack-traced-to-1-operator/
Polyfill.io, BootCDN, Bootcss, Staticfile attack traced to 1 operator

The recent large scale supply chain attack conducted via multiple CDNs, namely Polyfill.io, BootCDN, Bootcss, and Staticfile that affected up to tens of millions of websites has been traced to a common operator. Researchers discovered a public GitHub repository with leaked API keys helping them draw a conclusion.

BleepingComputer
@renchap WTF. I'm actually shocked how many proposals there are... That post is endless...

@renchap God it reminds me how I got various emails about partnering with some companies that add ads or want to use client devices as exit nodes for their VPN service, for my android app, dns66.

No straight up take over offers though.

@renchap flashback to when I had to move on from Opera 9 and what is now Firefox didn’t even have extensions for half the stuff I used that Opera had built in… and I smelt a scheme.
@renchap Companies may forget the value of your open source project, but hackers never will 🥰
@renchap @rysiek And so, the "spurious dependencies enabling easy supply-chain attacks" and "unstable remote dependency with no authentication of any sort" problems show up once more.

Have people still not learned their lesson?

Limit dependencies to a minimum, and host the known-good polyfills locally. Or better yet, don't depend on Javascript at all.

@lispi314 @rysiek @renchap

https://www.joelonsoftware.com/2001/10/14/in-defense-of-not-invented-here-syndrome/

“The Excel development team will never accept it,” he said. “You know their motto? ‘Find the dependencies — and eliminate them.’ They’ll never go for something with so many dependencies.”

In-ter-est-ing. I hadn’t known that. I guess that explained why Excel had its own C compiler.

In Defense of Not-Invented-Here Syndrome

Time for a pop quiz. 1. Code Reuse is: a) Goodb) Bad 2. Reinventing the Wheel is: a) Goodb) Bad 3. The Not-Invented-Here Syndrome is: a) Goodb) Bad Of course, everybody knows that you should always…

Joel on Software
@renchap In a perfect world, maintainers of browser extensions should always tell their users when an extension got new owners.