LinkedIn checks for 2953 browser extensions
Mechanism of LinkedIn’s extension detection
- Code probes
chrome-extension://<id>/<known file>for ~2950 extensions and infers presence from successful loads, not by calling the Chrome Web Store. - Targets
web_accessible_resourcesdeclared in extension manifests; a large hardcoded list of{id, file}pairs is embedded infingerprint.js. - In addition to extensions, the same script fingerprints WebGL capabilities, fonts, and other browser features, and ties into reCAPTCHA v3.
- LinkedIn also wraps
localStorage/sessionStorageto whitelist allowed keys, preventing arbitrary per-site storage.
Browser differences and defenses
- Firefox randomizes
moz-extension://<UUID>/...paths per browser instance, and UUIDs are not tied to the extension ID, making this technique effectively useless there. - Manifest V3 adds options (including in Chromium) to randomize or limit web-accessible resource URLs and to scope them to specific sites.
- Popular content blockers like uBlock Origin Lite deliberately set
use_dynamic_urlso this probing method can’t reliably detect them. - Brave, as currently implemented, appears vulnerable in the same way as Chrome. No consensus on a generic browser setting that simply blocks this without breaking legitimate extension behavior.
Why LinkedIn might be doing this
- Most probed extensions are LinkedIn scrapers, lead-generation tools, automation/engagement bots, and various AI assistants.
- Commenters infer main goals as:
- Bot and scraper detection / rate limiting.
- Detecting and blocking automation that competes with LinkedIn’s own paid tools.
- Additional user fingerprinting and profiling.
Scraping, ToS, and hypocrisy debate
- Some argue this is a legitimate anti-abuse defense: businesses should be able to stop third parties from harvesting and reselling their data.
- Others see LinkedIn (and its parent company) as major data brokers already; calling this “abuse prevention” is viewed as hypocritical.
- Disagreement over whether scraping public pages is “abuse” at all versus a normal use of published data.
- Several note the irony that creating the extension list likely required large-scale scraping of the Chrome Web Store, against its own ToS.
Reactions, mitigations, and open questions
- Many users express disgust and surprise that sites can enumerate installed extensions at all; some consider leaving Chrome or moving to Firefox/forks.
- Suggested defenses: browser-side randomization of extension URLs, extensions avoiding web-accessible resources or using dynamic URLs, and more stringent same-origin–style rules for extension resources.
- Some ambiguity remains over what LinkedIn ultimately does with the collected extension fingerprints beyond bot/abuse detection.