LinkedIn está escaneando las extensiones del navegador
(404privacy.com)- LinkedIn envía solicitudes a URLs
chrome-extension://en Chrome para comprobar si ciertas extensiones están instaladas; los elementos no instalados quedan registrados como errores de solicitud fallida en la consola de herramientas de desarrollador - Según los registros de browsergate.eu y el repositorio de seguimiento en GitHub, el escaneo lleva ocurriendo al menos desde 2017, y la lista de objetivos creció de 38 a 6,278 para abril de 2026
- Como LinkedIn ya posee el nombre, empleador, cargo, experiencia y ubicación del usuario, el escaneo de extensiones no funciona como una huella digital anónima del dispositivo, sino como una forma de añadir una lista de software a una identidad profesional ya verificada
- El escaneo forma parte del sistema de recolección de huellas del dispositivo APFC de LinkedIn, que construye perfiles junto con 48 características del navegador y del dispositivo, como canvas fingerprint, WebGL, comportamiento de audio, fuentes, información de pantalla, memoria del dispositivo y la IP local vía WebRTC
- Los resultados de detección se empaquetan como
AedEventySpectroscopyEvent, se cifran con una clave pública RSA y luego se envían al endpointli/trackde LinkedIn; browsergate.eu afirma que este método viola la Digital Markets Act de la UE y que ya se abrió una investigación penal
Lista de software vinculada a un perfil de identificación personal
- La recolección de huellas suele presentarse como una forma de volver a reconocer el navegador de un visitante anónimo sin cookies
- En ese caso, el perfil puede identificar un dispositivo, pero no necesariamente queda vinculado a una identidad personal
- LinkedIn no trata con visitantes anónimos, sino que ya posee el nombre, empleador, cargo, experiencia, rango salarial, red profesional y ubicación del usuario
- El escaneo de extensiones de LinkedIn no crea un perfil de dispositivo de un visitante desconocido, sino que agrega una lista detallada de software a una identidad profesional ya verificada
- La lista de escaneo de LinkedIn incluye cientos de extensiones relacionadas con la búsqueda de empleo, por lo que puede detectar si alguien está buscando trabajo discretamente antes de decírselo a su empleador
- También incluye extensiones relacionadas con contenido político, prácticas religiosas, asistencia por discapacidad y neurodiversidad, por lo que el software del navegador puede servir para inferir aspectos de la vida personal
- Como LinkedIn conoce el lugar de trabajo del usuario, el resultado del escaneo de un solo empleado puede contribuir a identificar herramientas internas, productos de seguridad, suscripciones de competidores y flujos de trabajo de toda la organización
- La privacy policy de LinkedIn no revela este escaneo de extensiones, y a los usuarios no se les pide consentimiento ni se les informa
Un problema que va más allá de LinkedIn
-
Aplicación y precedente
- LinkedIn usa la lista de extensiones para hacer inferencias sobre usuarios que tienen instaladas ciertas extensiones y tomar medidas de control contra ellos
- Según browsergate, Milinda Lakkam confirmó bajo juramento que “LinkedIn took action against users who had specific extensions installed.”
- Los usuarios no tienen forma de saber que su software está siendo listado, que esa lista puede usarse en su contra, ni que no aparece en la política de privacidad de LinkedIn
-
El ecosistema de la recolección de huellas
- La huella digital del navegador suele tratarse como un problema en el que un sitio recopila señales, construye un perfil y reconoce al usuario entre sesiones
- El escaneo de extensiones de LinkedIn genera una lista detallada de software vinculada a una identidad verificada, y ese perfil no tiene por qué quedarse dentro de LinkedIn
- Si LinkedIn compra conjuntos de datos de comportamiento de terceros y en ellos aparece la huella del usuario, puede añadirlos a la información que ya tiene de esa persona
- El comportamiento de navegación fuera de LinkedIn, el historial de compras, los patrones de ubicación y los intereses pueden terminar formando parte de un perfil vinculado a la cuenta de LinkedIn
- A la inversa, LinkedIn integra scripts de terceros, incluido Google reCAPTCHA enterprise, que se carga en todas las visitas de página, permitiendo que los datos fluyan entre plataformas
- La huella que LinkedIn asocia con una identidad verificada también puede influir en sistemas de publicidad y rastreo fuera de linkedin.com
- Una vez que alguien inicia sesión en LinkedIn, la huella creada en esa visita puede seguirlo por toda la web
-
Grupos de usuarios realmente en riesgo
- Para periodistas, abogados, investigadores y personas que indagan sobre derechos humanos, un perfil de LinkedIn puede ser uno de los documentos de identidad verificada más detallados en línea
- Un perfil de LinkedIn contiene información construida deliberadamente con nombre real para fines profesionales
- El escaneo de extensiones añade a ese perfil, sin que el usuario lo sepa, el registro de herramientas de privacidad, extensiones de seguridad, herramientas de investigación y apps de productividad instaladas
- Si usas LinkedIn y Chrome, esta recolección está ocurriendo ahora mismo
APFC y la recolección avanzada de huellas con JavaScript
- El escaneo de extensiones no es una función aislada, sino parte de un sistema más amplio de huella digital del dispositivo que LinkedIn llama internamente APFC
- APFC significa Anti-fraud Platform Features Collection y también se conoce internamente como DNA, Device Network Analysis
- LinkedIn es algo más transparente sobre estas formas de rastreo que sobre el escaneo de extensiones, pero estos métodos son comunes en sitios web comerciales
- Este sistema recopila 48 características del navegador y del dispositivo en cada visita
- Entre los datos recopilados están el canvas fingerprint, el renderizador y los parámetros de WebGL, el comportamiento del procesamiento de audio, las fuentes instaladas, la resolución de pantalla, la relación de píxeles, la concurrencia de hardware, la memoria del dispositivo, el nivel de batería, la dirección IP local vía WebRTC, la zona horaria y el idioma
- El escaneo de extensiones es solo una de las entradas que componen un perfil mayor
Lo que ocurre técnicamente
- El código de LinkedIn envía solicitudes
fetch()a URLschrome-extension://para buscar ciertos archivos de extensiones instaladas en Chrome - Si la extensión no está instalada, Chrome bloquea la solicitud y registra el fallo
- Si la extensión está instalada, la solicitud se completa silenciosamente y LinkedIn lo registra
- En un entorno verificado, el escaneo se ejecutó durante unos 15 minutos y buscó más de 6,000 extensiones
- Cualquier usuario puede comprobarlo por sí mismo abriendo LinkedIn en Chrome y mirando la pestaña Consola en las herramientas de desarrollador
- Cada error rojo en la consola corresponde a una parte de la huella del usuario
Estructura del código y método de detección
- LinkedIn ejecuta código JavaScript en el navegador de todos los visitantes de Chrome, y ahí se encuentra el sistema encargado del escaneo de extensiones
- Ese archivo es un JavaScript minimizado y parcialmente ofuscado de aproximadamente 1.6MB
- La minimización normal comprime el código para mejorar el rendimiento, pero la ofuscación es un paso aparte diseñado para dificultar su lectura y comprensión
- LinkedIn ofusca el módulo exacto que contiene el sistema de escaneo de extensiones y lo oculta dentro de un archivo JavaScript de miles de líneas
- Dentro del archivo hay un arreglo codificado de IDs de extensiones del navegador
- En febrero de 2026, ese arreglo contenía 6,278 elementos
- Cada elemento tiene dos campos: el ID de una extensión de Chrome Web Store y la ruta de un archivo específico dentro del paquete de esa extensión
- La ruta del archivo no es un valor casual, sino necesaria porque las extensiones de Chrome pueden exponer archivos internos a páginas web mediante el campo
web_accessible_resources - Si una extensión está instalada y declara cierto archivo como accesible, una solicitud
fetch()achrome-extension://{id}/{file}tendrá éxito - Si no está instalada, Chrome bloquea la solicitud
- LinkedIn identifica y detecta directamente un archivo accesible específico para cada una de las 6,278 extensiones de la lista
- La lista sigue manteniéndose y ampliándose, y parece haber existido una herramienta para rastrear paquetes de extensiones de Chrome Web Store y analizar los recursos web accesibles en cada manifiesto para añadir nuevos objetivos de detección
Dos modos de escaneo y Spectroscopy
- El escaneo de extensiones funciona en dos modos
- El primer modo usa
Promise.allSettled()para enviar todas las solicitudes al mismo tiempo y detectar en paralelo el conjunto completo de extensiones - El segundo modo envía las solicitudes de forma secuencial con un retraso configurable entre cada una, distribuyendo la actividad de red a lo largo del tiempo para que resulte menos visible en herramientas de monitoreo
- LinkedIn puede alternar entre ambos modos mediante flags de funciones internas
- El escaneo también puede retrasarse con
requestIdleCallback, ejecutándose cuando el navegador está inactivo para que el usuario no note impacto en el rendimiento - Un segundo sistema de detección llamado Spectroscopy funciona de forma independiente a la lista de extensiones
- Spectroscopy recorre todo el árbol DOM y revisa referencias a URLs
chrome-extension://en todos los nodos de texto y atributos de elementos - Este método puede detectar extensiones que modifican la página aunque no estén en la lista codificada de LinkedIn
- Juntos, ambos sistemas abarcan tanto las extensiones instaladas como las extensiones que realmente interactúan con la página
Envío de telemetría
- Ambos sistemas de detección envían sus resultados a la misma canalización de telemetría
- Los IDs de extensiones detectadas se empaquetan en objetos
AedEventySpectroscopyEvent - Estos objetos se cifran con una clave pública RSA y se envían al endpoint
li/trackde LinkedIn - La huella cifrada luego se inserta en los headers HTTP de todas las solicitudes API durante la sesión
- LinkedIn recibe ese valor junto con todas las acciones que el usuario realiza durante la visita
Contexto legal
- browsergate.eu expone en detalle la lógica jurídica relacionada
- En 2024, Microsoft fue designada como gatekeeper bajo la EU Digital Markets Act, y LinkedIn es uno de los productos sujetos a regulación
- La DMA exige que los gatekeepers permitan el acceso de herramientas de terceros a los datos del usuario y prohíbe tomar medidas contra quienes usen esas herramientas
- browsergate.eu sostiene que el uso sistemático por parte de LinkedIn de medidas de control contra usuarios de herramientas de terceros, junto con el uso de un escaneo encubierto de extensiones para identificarlos, constituye una infracción de esas reglas
- Que esta afirmación sea aceptada legalmente o no es una cuestión que deberá resolverse en el ámbito jurídico
- La Cybercrime Unit de la Bavarian Central Cybercrime Prosecution Office in Bamberg confirmó que se abrió una investigación penal
- Este organismo se encarga de casos graves de ciberdelito que cruzan jurisdicciones
- browsergate.eu afirmó haber confirmado la investigación penal, haber proporcionado el número de caso y estar preparando la publicación completa de los documentos judiciales
1 comentarios
Comentarios en Hacker News
“No hay duda de que ya comenzó una investigación penal”. Bien. Estas empresas merecen ser apedreadas y soportar algo peor todavía.
Si un equipo realmente quiere evitar arruinar un sitio web hasta dejarlo por debajo del promedio, debería poder filtrar postulantes usando una lista de promotores conocidos del empeoramiento de servicios.
Tal vez ya sea tarde para cortar esto de raíz, pero no hay razón para dejar que estas personas sigan actuando sin restricciones y creciendo.
“Luego vi que explotó el tema de browsergate en mastodon y pensé ‘no puede ser’, pero en realidad ya se estaba preparando una demanda”. - un-nf
Farrell v LinkedIn Corporation 4:26-cv-02953-KAW (N.D. Cal. Apr. 6, 2026)
https://ia601503.us.archive.org/33/items/gov.uscourts.cand.4...
¿Por qué mi Chrome le estaría diciendo a cualquier sitio web la lista de extensiones que tengo instaladas?
Si no da error, entonces sabe que esa extensión está instalada. Es una forma ingeniosa y laboriosa, pero sortea las medidas de seguridad pensadas para impedir justamente este tipo de cosas.
Leí que lo usan para bloquear a usuarios que usan extensiones scraper conocidas para saltarse los términos del servicio, pero no termina de convencerme del todo.
“Las extensiones de Chrome pueden exponer archivos internos a páginas web mediante el campo
web_accessible_resourcesdemanifest.json. Si la extensión está instalada y expuso el recurso, una peticiónfetch()achrome-extension://{id}/{file}tendrá éxito. Si no está instalada, Chrome bloquea la petición y la promise es rechazada.LinkedIn prueba así todas las extensiones de su lista”.
Pero para hacerlo con 6,300 extensiones sería demasiado trabajo. ¿Habrá alguien que ofrezca esto como servicio?
Gente, si en el trabajo les pidieran implementar algo así, ¿qué elegirían: oponerse y aguantar hasta perder el empleo, o cumplir y conservarlo?
Como personas que hacen el trabajo técnico, ¿dónde trazan la línea entre telemetría y vigilancia?
Aunque si ya estás jugando a eso, quizá sea momento de buscar otro empleo ;)
Claro, si solo tres personas sabían del asunto, pueden descubrir muy rápido quién fue.
También puede ser una estructura donde gerentes en una situación parecida dan la orden, y los de más arriba solo miran si suben los ingresos sin importarles el método. Aun así, pareciera que en algún punto alguien debería decir: “¿qué estamos haciendo ahora mismo?”. Es raro.
Respondiendo la pregunta: claro que me opondría. En este momento tengo la suerte de poder tomar esa decisión sin pagar un costo grave. Pero, ¿quién va a venir a HN a decir “sí, no tengo moral”? Aunque sea con una cuenta desechable, no habría forma de saber si es real.
La parte más relevante que encontré en el texto original es esta:
“Las extensiones de Chrome pueden exponer archivos internos a páginas web mediante el campo
web_accessible_resourcesdemanifest.json. Si la extensión está instalada y expuso el recurso, una peticiónfetch()achrome-extension://{id}/{file}tendrá éxito. Si no está instalada, Chrome bloquea la petición y la promise es rechazada.LinkedIn prueba así todas las extensiones de su lista”.
También sería interesante ver qué otros sitios prueban esos mismos archivos. ¿Alguien ya investigó eso?
Esta es una práctica bastante estándar en el fingerprinting de dispositivos. LinkedIn probablemente la usa para proteger la plataforma contra scraping y cosas así, y la lista de extensiones tiene suficiente entropía como para identificar al usuario y servir como un componente útil del fingerprint.
He visto gente crear e instalar extensiones locales de Chrome en cuestión de días, y luego hacer que la IA se inyecte en las herramientas de desarrollador para scrapear casi cualquier sitio web. Y eso fue hace meses.
A estas alturas no veo una manera sencilla de defenderse de eso. Es cuestión de tiempo para que este tipo de medidas de programación defensiva deje de servir.
¿Esto es una alucinación? No encuentro esta cita en ninguna otra parte:
“Según browsergate, Milinda Lakkam confirmó bajo juramento que ‘LinkedIn tomó medidas contra usuarios que tenían ciertas extensiones instaladas’”.
https://browsergate.eu/the-evidence-pack/
Los sistemas de LinkedIn “pueden haber tomado medidas contra usuarios de LinkedIn que tenían instalado [XXXXXX]”.
Edit: ¡qué bueno! Recién vi que el texto con sangría ahora sí hace salto de línea en navegadores móviles. Al menos en ffm. Me pregunto cuándo lo arreglaron.
Si vamos a ser justos, la política de privacidad de LinkedIn sí dice que recopilan esta información. Ver https://www.linkedin.com/legal/privacy-policy?ref=cms.hondas...
“1.5 Dispositivo y ubicación
Cuando visitas o abandonas nuestros servicios (incluidos algunos plugins y nuestras cookies o tecnologías similares en sitios de terceros), recibimos las URL del sitio del que vienes y del sitio al que vas, así como la hora de tu visita. También obtenemos información sobre tu red y tu dispositivo (por ejemplo, dirección IP, servidor proxy, sistema operativo, navegador web y complementos, identificadores y funciones del dispositivo, ID de cookies y/o ISP, o tu operador móvil). Si usas nuestros servicios desde un dispositivo móvil, ese dispositivo nos enviará datos de ubicación según la configuración de tu teléfono. Te pediremos consentimiento antes de usar GPS u otras herramientas para identificar tu ubicación precisa.”
La parte relevante aquí es “incluidos algunos plugins”.
Eliminé mi cuenta de LinkedIn y ahora la vida es mejor.