top | item 46904361

LinkedIn checks for 2953 browser extensions

534 points| mdp | 25 days ago |github.com

239 comments

order

cbsks|25 days ago

Looks like Firefox is immune.

This works by looking for web accessible resources that are provided by the extensions. For Chrome, these are are available in a webpage via the URL chrome-extension://[PACKAGE ID]/[PATH] https://developer.chrome.com/docs/extensions/reference/manif...

On Firefox, web accessible resources are available at "moz-extension://<extension-UUID>/myfile.png" <extension-UUID> is not your extension's ID. This ID is randomly generated for every browser instance. This prevents websites from fingerprinting a browser by examining the extensions it has installed. https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...

rchaud|25 days ago

And they said that using a browser with sub-5% market share would cause us to miss out on the latest and greatest in web technology!

LAC-Tech|25 days ago

Anecdotally, I sometimes notice my computer fan spinning ferociously... it's almost always because I have left a firefox tab with linkedin open somewhere.

Are they bit coin mining or are they just incompetent?

xhcuvuvyc|25 days ago

It's ok, they can fingerprint you for using Firefox.

nilslindemann|25 days ago

Yes, is it now?

    https://fingerprint.com/
    https://coveryourtracks.eff.org/
    https://abrahamjuliot.github.io/creepjs/
I don't have Firefox or another browser installed right now, but the last time I checked, every browser was detected, especially on the first link.

Further, When I used Tor, a few sites, like Google, showed me Captchas for a while afterward, when using my _normal_ browser.

Further I heard that sites like PayPal are giving me black karma when I try to avoid Fingerprinting by using e.g. Tor.

awesome_dude|25 days ago

This is probably a naive question, but...

Doesn't the idea of swapping extension specific IDs to your browser specific extension IDs mean that instead of your browser being identifiable, you become identifiable?

I mean, it goes from "Oh they have X, Y , and Z installed" to "Oh, it's jim bob, only he has that unique set of IDs for extensions"

OJFord|25 days ago

Though LinkedIn in Firefox with uBlock Origin allowing just enough (not sure if that's relevant, just haven't run it without) does not last long without rocketing CPU & memory usage, fan spinning up, etc. (ime, anyway)

rdoherty|25 days ago

Skimming the list, looks like most extensions are for scraping or automating LinkedIn usage. Not surprising as there's money to be made with LinkedIn data. Scraping was a problem when I worked there, the abuse teams built some reasonably sophisticated detection & prevention, and it was a constant battle.

cxr|25 days ago

In order to create the data source that LinkedIn's extension-fingerprinting relies on to work, someone (at LinkedIn*?) almost certainly violated the Chrome Web Store TOS—by (perversely*) scraping it.

* if LinkedIn didn't get it from an existing data source

winddude|25 days ago

a problem for linkedin != "a problem". The real problem for people is the back room data brokering linkedin and others do.

bryanrasmussen|25 days ago

from the code doesn't look like they do anything if they have a match, they just save all the results to a csv for fingerprinting?

tlogan|25 days ago

By looking the list it seems like it is not really “sophisticated”. It is just list based on names (if there is a “email” in the name). Majority of extensions do not even ask for permissions to access linkedin.com.

RHSman2|25 days ago

I had the pleasure of scraping LinkedIn for a client. Great fun.

hsbauauvhabzb|25 days ago

Wont someone think of poor little LinkedIn, a subsidiary of one of the largest data brokers in the world?

bastard_op|25 days ago

Chrome is the new IE6. Google set themselves up to be the next Microsoft and is "ad friendly" in all the creepy ways because that's what Google IS an ad company. All they've contributed to security is diminishing the capability of adblockers and letting malware to do bad things to you as consumers.

hashstring|25 days ago

I fully agree that Chrome is spyware.

However, they do contribute to security: Chrome was first to implement Site Isolation, sandboxing too. These are essential security features for modern browsers. They are also not doing too bad with patching and security testing.

userbinator|25 days ago

Chrome has become much worse than IE6. Microsoft was not in the business of tracking users and selling ads back then.

0xbadcafebee|25 days ago

He who controls the Ads, controls the Internet.

themafia|25 days ago

> Google set themselves up to be the next Microsoft

Google became a monopoly. All monopolies do this.

dominicrose|25 days ago

Brave feels like using Chrome. The transition was seemless even as a developer who uses the devtools. Obviously that's because it's almost the same code, but Brave is much more privacy friendly right?

brianpbeau|25 days ago

Imagine being the nerd that is still using Chrome in the YOL 2026.

avastel|25 days ago

I wrote a blog post recently about the technique used by LinkedIn to do extension probing, as well as other ways to do it with less side effects

https://blog.castle.io/detecting-browser-extensions-for-bot-...

direwolf20|25 days ago

Patch Firefox so navigator.webdriver is always false, then remote control it. Seems not easily detectable. You could still watch for fast input patterns...

pests|25 days ago

Nice write up, definitely exactly this.

Banditoz|25 days ago

LinkedIn has been employing a lot of strange dark patterns recently:

* Overriding scroll speed on Firefox Web. Not sure why.

* Opening a profile on mobile web, then pressing back to go to last page, takes me to the LinkedIn homepage everytime.

* One of their analytic URLs is a randomly generated path on www.linkedin.com, supposedly to make it harder to block. Regex rules on ublock origin sufficiently stop this.

Anyone know why they could be doing this?

gabeh|25 days ago

Giving them the benefit of the doubt here obviously, I know they're in an all out war with the contact database industry. Going from websoup to agents dialing out to rent-a-human services requires different tactics.

duskdozer|25 days ago

- scroll speed - unsure of ulterior motives, but i've seen this even on some foss things. i think some people just think it looks cool/modern/"responsive"/whatever

- back - hijacking it seems fairly common on malicious/dark-pattern sites to try to trap you on them. not sure why because you can just leave and it seems it would obviously piss someone off

- analytics paths - not everyone may know about/how to use regex rules for it or may use something else that doesn't support it (the stripped down ublock for chrome? i don't know if it can or not). sites seem to do this with malicious js code as well, presumably to prevent blocking

rpigab|25 days ago

I've been wondering why my scroll speed was off in LinkedIn, inspecting scroll-related css without finding an answer, I thought this was a bug. Anyone know what property does this? I might try to fix it with uBO scripts.

I think they want you to feel disoriented.

Why do they do all this bs and not fix the bug that happens when you insert Unicode U+202E in your name?

I've been having loads of fun with that but it's never been fixed. Anyone tagging me in a comment makes their input right-to-left unless they backspace the tag or insert newline. It also jumbles notification text because your name is concatenated to the notification static text.

You can also create an inverted link but it isn't clickable, just like other unicode links which aren't punycode-encoded on LinkedIn but aren't clickable (on the clients I've tried).

ikr678|25 days ago

I always assumed mobile webpage misbehavior was to force you to use the app.

jmyeet|25 days ago

I started using Chrome at version 2 I think. It still had the 3D logo. It was such a breath of fresh air and the big innovation was running one process per tab. Firefox existed but the entire browser could (and did) hang. And IE was... well, IE.

I did have a relatively early beef with Chrome though, whcih was I couldn't completely opt out of Flash. As in, I didn't even want it installed. This turned out to be an issue because Flash turned out to be one of the earliest vectors for so-called "zombie cookies".

Fingerprinting in general has been a longstanding problem and has become more and more advanced.

Add to this that Google is, first and foremost, an advertising business and they've become increasingly hostile to ad-bloccking tech for obvious reasons.

Basically what I'm getting at is something I couldn't have imagined a decade ago where I think I really have go switch away from Chrome to something that takes privacy and security seriously so that LinkedIn can't do things like this. And I increasingly don't trust Google to do that.

I actually have more trust in Apple because they have historically been user-focused eg blocking Meta's third party cookies. But obviously Safari isn't an option because it's not cross-platform.

I'm not sure I trust the current state of Mozilla. What's the alternative? Brave? Is Opera still a thing? I honestly don't know.

What I really want is a cross-platform browser written in Rust that black-holes ads out of the box. Why Rust? Memory safety. I simply don't trust a large C/C++ code to never have buffer overruns. Memory safety has become too important.

I don't want my browser to provide information on what extensions I'm using to a site and that shouldn't be a thing I have to ask for or turn on in any way.

direwolf20|25 days ago

There's a menagerie of de-mozillaed Firefox forks.

mrkramer|25 days ago

LinkedIn is the worst walled garden of all of them.

wolvoleo|25 days ago

I also really don't understand why their subscription is so extremely expensive for someone who is not a recruiter.

It's already a sycophantic cesspool of corporate drones repeating mindless PR. I unfollow everyone who re"tweets" feel-good memes or corporate crap and I have very few people I follow left over :) Critical discussion doesn't exist, if I comment anything that's not 100% celebratory of so-called company successes I get blocked.

grvdrm|25 days ago

Close second: conference apps.

They infuriate me. Data harvesting machines in all ways. Incredibly user hostile.

Example: making me scroll endlessly through attendee lists. Lack of good filters. Etc. Can’t download attendee lists.

I finally lost my patience and wrote a Selenium script to page through an app and extract everything. Worked well after some initial trial and error.

mongrelion|25 days ago

Curious question: why would they check for installed extensions on one's browser?

CobrastanJorji|25 days ago

Fingerprinting. There are a few reasons you'd do it:

1. Bot prevention. If the bots don't know that you're doing this, you might have a reliable bot detector for a while. The bots will quite possibly have no extensions at all, or even better specific exact combination they always use. Noticing bots means you can block them from scraping your site or spamming your users. If you wanna be very fancy, you could provide fake data or quietly ignore the stuff they create on the site.

2. Spamming/misuse evasion. Imagine an extension called "Send Messages to everybody with a given job role at this company." LinkedIn would prefer not to allow that, probably because they'd want to sell that feature.

3. User tracking.

jppope|25 days ago

most automations for sales and marketing use browser extensions... linkedIn wants you using their tools not 3rd party

staticshock|25 days ago

For a social network, more information about their users = better ad targeting. It likely gets plumbed into models to inform user profiles.

HPsquared|25 days ago

An attempt at fingerprinting, I suppose?

ddtaylor|25 days ago

Does anyone know if Brave has any defense against this like Firefox does?

pnw|25 days ago

It doesn't seem like Brave's fingerprinting prevention includes extensions, so on my first pass I would say no.

zahlman|25 days ago

> This repository documents every extension LinkedIn checks for and provides tools to identify them.

I get that the CSV lists the extensions, and the tools are provided in order to show work (mapping IDs to actual software). But how was it determined that LinkedIn checks for extensions with these IDs?

And is this relevant for non-Chrome users?

bitbasher|25 days ago

The list of extensions being scanned for are pretty clear and obvious. What is really interesting to me are the extensions _not_ being scanned for that should be.

The big one that comes to mind is "Contact Out" which is scan-able, but LinkedIn seems to pretend like it doesn't exist? Smells like a deal happened behind the scenes...

https://chromewebstore.google.com/detail/email-finder-by-con...

cxr|25 days ago

That extension cannot be fingerprinted by its content-accessible resources. It doesn't declare any in its manifest.

deathanatos|25 days ago

LinkedIn has also started sending a great deal of spam:

  A $7.5B chip merger
  Pinterest prepares layoffs
  Healthcare premiums surge
  Autodesk to cut 7% of jobs
  Ozempic keeps getting cheaper
Since the "unsubscribe" link does not lead to a working page, this seems like a trivial violation of even what laughable protections CAN-SPAM alleges to offer.

And what's with some of these? Bad mouthing employers is an odd choice for a platform that makes its money from them? Or perhaps now all the revenue is ad derived?

hasperdi|25 days ago

Another thing... they alter the localStorage & sessionStorage prototype, by wrapping the native ones with a wrapper that prevent keys that not in their whitelist from being set.

You can try this by opening devtools and setting

  localStorage.setItem('hi', 123)

dwedge|25 days ago

I wonder if this is why the linkedin feed blocker I installed in Firefox 2 weeks ago stopped working for me within 24 hours

input_sh|25 days ago

    cut -d',' -f2 chrome_extensions_with_names_all.csv | grep -c "AI"
    474
Only 16%!?

esprehn|25 days ago

Reading the fingerprint.js is interesting, it's not just the thousands of extensions. It looks like it's also probing for a long list of webgl extensions, fonts, and other capabilities. There's recaptcha v3 references in there too.

Perhaps an overly aggressive attempt to block bots.

ta988|25 days ago

So it really is espionage at all levels.

tech234a|25 days ago

See also: a demo page for the same technique that can enumerate many extensions installed in your browser: https://browserleaks.com/chrome

xnx|25 days ago

Yuck. Disgusting that extension detection is possible.

duxup|25 days ago

I miss when websites were, by default, there to provide me content ...

unstatusthequo|25 days ago

I’m probably on the list. I made a LinkedIn Redactor that allowed you to add keywords and remove posts from your thread that included such words. It’s the X feature but for LinkedIn. Anyway, got a cease and desist from those lame fucks at LI. So I removed from the chrome store but it’s still available on GitHub.

Aurornis|25 days ago

I suggest everyone take a look at the list of extensions and their names for some very important context: https://github.com/mdp/linkedin-extension-fingerprinting/blo...

I didn't find popular extensions like uBlock or other ad blockers.

The list is full of scammy looking data collection and AI tools, though. Some random names from scrolling through the list:

- LinkedGPT: ChatGPT for LinkedIn

- Apollo Scraper - Extract & Export Apollo B2B Leads

- AI Social Media Assistant

- LinkedIn Engagement Assistant

- LinkedIn Lead Magnet

- LinkedIn Extraction Tool - OutreachSheet

- Highperformr AI - Phone Number and Email Finder

- AI Agent For Jobs

These look like the kind of tools scummy recruiters and sales people use to identify targets for mass spamming. I see several AI auto-application tools in there too.

cxr|25 days ago

> I suggest everyone take a look at the list of extensions and their names for some very important context[…] I didn't find popular extensions like uBlock

Unsurprising outcome since uBlock (specifically: uBlock Origin Lite, the only version available for Chrome on the Chrome Web Store) makes itself undetectable using this method. (All of its content-accessible resources have "use_dynamic_url" set to "true" in its extension manifest.) So its absence in this data is not dispositive of any actual intent by LinkedIn to exclude it—because they couldn't have included it even if they wanted to.

NicuCalcea|25 days ago

LinkedIn itself provides tools for scummy recruiters to mass spam, so this is just them protecting their business.

Also, not all of them are data collection tools. There are ad blockers listed (Hide LinkedIn Ads, SBlock - Super Ad Blocker) and just general extensions (Ground News - Bias Checker, Jigit Studio - Screen Recorder, RealEyes.ai — Detect Deepfakes Across Online Platforms, Airtable Clipper).

DOM100|25 days ago

const nameA = getName(a).toLowerCase(); const nameB = getName(b).toLowerCase(); return nameA.localeCompare(nameB);

const msg = createDoneMessage(); msg.style.opacity = '1';

    console.log("Extensions sorted alphabetically!");
    console.table(sortedCards.map(c => ({
        name: getName(c),
        id: c.id || '—'

ece|25 days ago

Cover your tracks from EFF doesn't seem to check extensions? Are there other fingerprint tests to use?

fHr|25 days ago

Linkedin is such a shity wanabe HR adult day care recruiting bs platform, if it would go offline tomorrow and never came back not a single tear would be shed by any Engineer.

insin|25 days ago

So every Chrome extension that wants to avoid being detected this way needs to proxy fetch() on the target site, imagining someone with a bunch of them installed having every legit HTTP request on the target site going through a big stack of proxies

alunchbox|25 days ago

why would they want this type of check? Like what could it possibly be doing for the end customer or features available?

PaulHoule|25 days ago

No wonder it is so slow to load.

ramuel|25 days ago

We live in the best timeline.

lapcat|25 days ago

[removed]

ronsor|25 days ago

This is a security vulnerability and should be patched. Sorry, LinkedIn.

(Alternatively extension developers can modify their extensions to block these requests!)

jsheard|25 days ago

Looks to me like LinkedIn is fetching chrome-extension://{extension id}/{known filename} and seeing if it succeeds, not pinging the web store.

Should be patched nonetheless though, that's a pretty obscene fingerprinting vector.

cobertos|25 days ago

Wouldn't that mean 2900 requests from fingerprint.js??

halapro|25 days ago

If this is true, it's insane that this would work:

- why does CWS respond to cross-site requests?

- why is chrome sending the credentials (or equivalent) in these requests?

- why is the button enabled server-side and not via JS? Google must be confident in knowing the exact and latest state of your installed extensions enough to store it on their servers, I guess

a-asad|24 days ago

[deleted]

DrStartup|25 days ago

Setup a quick CDP connection. Have Claude Code attach and inject JS into Page.addScriptToEvaluateOnNewDocument. Loads before the page.

Typical early hooks: • fetch wrapper • XMLHttpRequest.prototype.open/send wrapper • WebSocket constructor wrapper • history.pushState/replaceState wrapper • EventTarget.addEventListener wrapper (optional, heavy) • MutationObserver for DOM diffs • Error + unhandledrejection capture

HumanOstrich|25 days ago

This is irrelevant to the article and discussions here. Weird copypasta bullet points too.

userbinator|25 days ago

Looks like whatever LLM you used is not doing a very good job.

shj2105|25 days ago

what would this do?