领英扫描6278个扩展程序,并将结果加密到每个请求中。
LinkedIn scans for 6,278 extensions and encrypts the results into every request

原始链接: https://404privacy.com/blog/linkedin-is-scanning-your-browser-extensions-this-is-how-they-use-the-data/

## LinkedIn 秘密追踪你的浏览器扩展程序 LinkedIn 正在秘密扫描用户的 Chrome 浏览器扩展程序——这一做法至少从 2017 年开始,目前已追踪超过 6,278 个扩展程序。这并非为了改善用户体验;LinkedIn 利用这些数据构建详细档案,将你的职业身份与个人浏览习惯联系起来。 该公司通过尝试访问扩展程序内的文件来探测扩展程序的安装情况,记录失败(和成功)情况以构建软件清单。这会泄露敏感信息——求职活动、政治倾向,甚至关于残疾的细节——所有这些都没有经过用户同意或在他们的隐私政策中披露。 除了隐私问题外,LinkedIn 据称*利用*这些数据,对安装了特定扩展程序的用戶进行惩罚。这一做法目前正在德国进行刑事调查,可能违反欧盟《数字市场法》。 这并非孤立事件。LinkedIn 的指纹识别系统,结合数据共享,允许追踪你在 *离开* LinkedIn 后的浏览活动,创建一个强大的监控网络。这凸显了一个更广泛的生态系统问题,即浏览器指纹识别将跨平台的数据连接起来,侵蚀在线隐私。

## LinkedIn 扩展扫描 – 摘要 最近的发现表明 LinkedIn 正在主动扫描用户的 Chrome 扩展程序——一个包含 6,278 个条目的列表——并将结果加密到每个 API 请求中。研究人员已证实这一做法,允许 LinkedIn 可能根据用户安装的扩展程序来构建用户画像,揭示诸如宗教信仰、收入水平和求职活动等信息。 讨论强调了开发者面临类似请求时所产生的伦理问题,质疑有益遥测数据与侵入性监控之间的界限。由于 Chrome 的静态扩展 ID,这个问题似乎仅限于 Chrome,用户正在探索其他浏览器,如 Firefox(使用动态 ID)和 Safari,作为潜在的解决方案。 针对 LinkedIn 的行为已展开刑事调查,许多评论者对数据收集表示强烈反对。更多讨论和相关文章可以在 Hacker News 上找到 ([https://news.ycombinator.com/item?id=47613981](https://news.ycombinator.com/item?id=47613981))。
相关文章

原文

When companies get caught doing this sort of thing, the response is almost always the same: "we're using this technology to combat fraud," or "ensure positive user experience," or "save computing resources," or some other hog wash.

The simple truth, there's no reason to be collecting data that can be used to identify a user across the web if they're not signed in to your service.

The harm of companies like Experian or LinkedIn being able to correlate all of your web traffic back to you is not hard to imagine. Though, it begs a simple question: should a company involved in my professional life have access to my personal information obtained without my explicit consent?

No. End stop.

This is not new

According to records documented by browsergate.eu and a GitHub repository tracking the extension list, LinkedIn's extension scanning dates to at least 2017, when the list contained 38 entries. My count? As of April 2026, LinkedIn has identified and tracks 6,278 extensions.

The list is actively maintained and expanding.

At this scale the catalog was not built by hand. Someone wrote tooling to crawl Chrome Web Store extension packages, parse each manifest for web-accessible resources, identify a probe target, and add the entry to the list. This is infrastructure that has been in place for nearly a decade.

I verified this myself

I opened LinkedIn in Chrome. I opened developer tools (F12 or Inspect) and the console filled with errors.

Every entry is an extension that I don't have installed. At least 6,278 data points LinkedIn has collected on me.

Each one of those errors is LinkedIn asking your computer if you have a specific extension installed.

Skip to the bottom for more technical details.

LinkedIn already knows so much about you, why tell them more?

Most fingerprinting operations work against anonymous visitors. The fingerprint allows a site to recognize a returning browser without cookies.

The profile that results is technically identified but not necessarily personally identified. The site knows a device, not a person. Still an issue, but not inherently linked to any personal information.

LinkedIn is not working with anonymous visitors.

LinkedIn knows your name. Employer. Job title. Career history. Salary range. Professional network. Location.

You provided them with all of it.

When LinkedIn's extension scan runs on your browser, it is not building a device profile for an unknown visitor. It is appending a detailed software inventory to a profile that already contains your verified professional identity.

The harm is specific.

Hundreds of job search extensions are in the scan list. LinkedIn knows which of its users are quietly looking for work before they've told their employer.

Extensions tied to political content, religious practice, disability accommodation, and neurodivergence are in the list. Your browser software becomes a source of inferences about your personal life, attached without your knowledge to your professional identity.

And because LinkedIn knows where each user works, none of this is only linked to an individual. The scan results from one employee contribute to a picture of their organization. Across enough employees, LinkedIn can map a company's internal tooling, security products, competitor subscriptions, and workflows, without that organization's knowledge or consent. Your browser becomes a window into your employer.

None of this is disclosed in LinkedIn's privacy policy. There is no mention of extension scanning in any public-facing document. No user was asked for consent. No user was informed.

None of this is disclosed in LinkedIn's privacy policy

Why this matters beyond LinkedIn

The precedent

LinkedIn is using these extension lists to make inferences and take enforcement actions against users who have them installed. According to browsergate, Milinda Lakkam confirmed this under oath, saying, "LinkedIn took action against users who had specific extensions installed."

Users who had no idea their software was being inventoried, no idea the inventory was being used against them, and no way to know it was happening because none of it appears in LinkedIn's privacy policy.

The fingerprinting ecosystem problem

Browser fingerprinting is usually discussed as a tracking problem contained to one site. A site collects signals, builds a profile, recognizes you across sessions. The problem stays local.

That framing understates what's actually happening.

LinkedIn's extension scan produces a detailed software inventory linked to a verified identity. That profile doesn't have to stay at LinkedIn to be useful.

If LinkedIn purchases a third party behavioral dataset and your fingerprint appears in it, they can append that data to what they already know about you. Your browsing behavior off LinkedIn, your purchase history, your location patterns, your interests, all of it becomes part of a profile that is linked to your LinkedIn account.

The reverse is also true. LinkedIn integrates third party scripts including Google's reCAPTCHA enterprise, loaded on every page visit. Data flows between platforms. A fingerprint that LinkedIn has linked to your verified identity can inform advertising and tracking systems far outside linkedin.com.

You log into LinkedIn once, and the fingerprint that visit produces can follow you across the web.

This is the larger ecosystem problem. Browser fingerprinting is the connective tissue of the modern surveillance economy. It is how profiles built on one platform get enriched with data from another. It is why you get Instagram or Facebook ads for the item you were just looking up on Google.

It is how your professional identity, your browsing behavior, your installed software, and your location history get stitched together into something none of those individual platforms could build alone.

The people this is a real threat to

For the journalists, lawyers, researchers, and human rights investigators, that distinction is operationally significant. Your LinkedIn profile is one of the most detailed verified identity documents that exists about you online. You built it deliberately, for professional purposes, with your real name attached. The extension scan means that profile now includes a record of every privacy tool, security extension, research tool, and productivity application installed in your browser, collected without your knowledge, linked to your verified identity, and transmitted encrypted to LinkedIn's servers with every action you take on the platform.

If you use LinkedIn and Chrome, this is happening to you right now.

Advanced JavaScript fingerprinting

The extension scan is not a standalone feature. It is part of a broader device fingerprinting system LinkedIn calls APFC, Anti-fraud Platform Features Collection, internally also referred to as DNA, Device Network Analysis.

While LinkedIn is a little more forthcoming about these tracking methods, as they are commonly included on commercial websites, this establishes a sort of pattern of behavior.

That system collects 48 browser and device characteristics on every visit: canvas fingerprint, WebGL renderer and parameters, audio processing behavior, installed fonts, screen resolution, pixel ratio, hardware concurrency, device memory, battery level, local IP address via WebRTC, time zone, language, and more.

The extension scan is one input into a much larger profile.

Technically, what's happening?

LinkedIn's code fires a fetch() request to a chrome-extension:// URL, looking for a specific file installed to chrome. When the extension isn't installed, Chrome blocks the request and logs the failure. When it is installed, the request resolves silently and LinkedIn records it.

The scan ran for around 15 minutes on my computer, and it searched my computer for over 6,000 extensions.

You can verify this yourself. Open LinkedIn in Chrome. Open developer tools. Go to the console tab. Watch what happens. Every red error is a part of your fingerprint.

The code

The system responsible for this lives in some JavaScript code that LinkedIn runs in every Chrome visitors browser. The file is approximately 1.6 megabytes (it's changed since browsergate's analysis) of minified and partially obfuscated JavaScript.

Standard minification compresses code for performance. Obfuscation is a separate step that makes code harder to read and understand. LinkedIn chose to obfuscate the exact module containing the extension scanning system, while also burying it in a JavaScript file thousands of lines long.

Inside that file, there is a hardcoded array of browser extension IDs. As of February 2026 that array contained 6,278 entries. Each entry has two fields: a Chrome Web Store extension ID and a specific file path inside that extension's package.

The file path is not incidental. Chrome extensions expose internal files to web pages through the web_accessible_resources field. When an extension is installed and has declared a file as accessible, a fetch() request to chrome-extension://{id}/{file} succeeds. When it isn't installed, Chrome blocks the request. LinkedIn has identified a specific accessible file for each of the 6,278 extensions in its list and probes for it directly.

The scan runs in two modes. The first fires all requests simultaneously using Promise.allSettled(), probing all of the extensions in parallel. The second fires them sequentially with a configurable delay between each request, spreading network activity over time and reducing its visibility in monitoring tools. LinkedIn can switch between modes using internal feature flags. The scan can also be deferred to requestIdleCallback, which delays execution until the browser is idle so the user sees no performance impact.

A second detection system called Spectroscopy operates independently of the extension list. It walks the entire DOM tree, inspecting every text node and element attribute for references to chrome-extension:// URLs. This catches extensions that modify the page even if they aren't in LinkedIn's hardcoded list. Together the two systems cover extensions that are merely installed and extensions that actively interact with the page.

Both systems feed into the same telemetry pipeline. Detected extension IDs are packaged into AedEvent and SpectroscopyEvent objects, encrypted with an RSA public key, and transmitted to LinkedIn's li/track endpoint. The encrypted fingerprint is then injected as an HTTP header into every subsequent API request made during your session. LinkedIn receives it with every action you take for the duration of your visit.

browsergate.eu has documented the legal arguments in detail and their work is worth reading in full. The relevant context here is this: in 2024, Microsoft was designated as a gatekeeper under the EU's Digital Markets Act. LinkedIn is one of the regulated products. The DMA requires gatekeepers to allow third party tools access to user data and prohibits gatekeepers from taking action against users of those tools.

browsergate.eu argues that LinkedIn's systematic enforcement against third party tool users, combined with the covert extension scanning used to identify them, constitutes non-compliance with that regulation. Whether that argument prevails is a legal question.

What is not a question is that a criminal investigation is now open. The Cybercrime Unit of the Bavarian Central Cybercrime Prosecution Office in Bamberg confirmed an investigation. That office handles serious cybercrime cases with cross-jurisdictional reach. This is not a compliance dispute. It is a criminal matter.

I contacted browsergate.eu directly while preparing this piece. They confirmed the criminal investigation, provided the case number, and indicated the full court documents are being prepared for public release.

I will update this article when they are available.

联系我们 contact @ memedata.com