LinkedIn está escaneando las extensiones del navegador
(404privacy.com)- LinkedIn envía solicitudes a URLs
chrome-extension://en Chrome para verificar si ciertas extensiones están instaladas, y los elementos no instalados quedan registrados como errores de solicitud fallida en la consola de herramientas para desarrolladores - Como LinkedIn ya posee el nombre, empleador, cargo, trayectoria profesional 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
- Según los registros de browsergate.eu y el repositorio de seguimiento en GitHub, el escaneo existe al menos desde 2017, y la lista objetivo creció de 38 a 6,278 extensiones para abril de 2026
- El escaneo forma parte del sistema de recolección de huellas digitales de dispositivos 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 constituye una violación de la Ley de Mercados Digitales de la UE y que ya se abrió una investigación penal
Lista de software asociada a un perfil de identificación personal
- La recolección de huellas digitales normalmente se trata como una técnica para volver a reconocer el navegador de un visitante anónimo sin usar cookies
- En ese caso, el perfil puede identificarse a nivel de dispositivo, pero no necesariamente vincularse con una identidad personal
- LinkedIn no se limita a visitantes anónimos: ya posee el nombre, empleador, cargo, trayectoria profesional, 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 añade 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 un usuario está buscando trabajo en silencio 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 como base 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 a competidores y flujos de trabajo de toda una organización
- La privacy policy de LinkedIn no revela el escaneo de extensiones, y los usuarios no reciben aviso ni se les pide consentimiento
Un problema que va más allá de LinkedIn
-
Medidas de control 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: “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 esto no aparece en la política de privacidad de LinkedIn
-
Ecosistema de huellas digitales
- La recolección de huellas digitales del navegador suele tratarse como el problema de un sitio que recopila señales, crea 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 dentro de ellos aparece la huella digital de un usuario, LinkedIn puede añadirla a la información de usuario que ya posee
- El comportamiento de navegación fuera de LinkedIn, el historial de compras, los patrones de ubicación y los intereses pueden pasar a formar parte de un perfil vinculado a una cuenta de LinkedIn
- En sentido inverso, LinkedIn integra scripts de terceros, incluido Google reCAPTCHA enterprise, que se carga en cada visita de página, permitiendo el flujo de datos entre plataformas
- La huella digital que LinkedIn vincula con una identidad verificada también puede influir en sistemas de publicidad y seguimiento fuera de linkedin.com
- Una vez que inicias sesión en LinkedIn, la huella digital creada durante esa visita puede seguirte por toda la web
-
Grupos de usuarios en riesgo real
- Para periodistas, abogados, investigadores y personas que investigan derechos humanos, el perfil de LinkedIn puede convertirse en uno de los documentos de identidad verificada más detallados en internet
- Un perfil de LinkedIn es información construida deliberadamente con fines profesionales y con nombre real
- El escaneo de extensiones vincula a ese perfil, sin conocimiento del usuario, el historial de instalación de herramientas de privacidad, extensiones de seguridad, herramientas de investigación y apps de productividad
- Si usas LinkedIn y Chrome, esta recolección está ocurriendo ahora mismo
APFC y la recolección avanzada de huellas digitales con JavaScript
- El escaneo de extensiones no es una función aislada, sino parte de un sistema más amplio de huellas digitales de dispositivos 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 más abierto sobre estas formas de seguimiento 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 elementos recopilados están canvas fingerprint, el renderizador y parámetros de WebGL, el comportamiento del procesamiento de audio, las fuentes instaladas, la resolución de pantalla, la proporción de píxeles, la concurrencia de hardware, la memoria del dispositivo, el nivel de batería, la dirección IP local a través de WebRTC, la zona horaria y el idioma
- El escaneo de extensiones es solo una de las entradas que conforman un perfil más grande
Qué ocurre técnicamente
- El código de LinkedIn envía solicitudes
fetch()a URLschrome-extension://para buscar archivos específicos instalados en Chrome - Si la extensión no está instalada, Chrome bloquea la solicitud y deja constancia del fallo en el registro
- Si la extensión está instalada, la solicitud se completa silenciosamente y LinkedIn lo registra
- En un entorno verificado, el escaneo se ejecutó durante aproximadamente 15 minutos y buscó más de 6,000 extensiones
- El usuario puede comprobarlo directamente abriendo LinkedIn en Chrome y mirando la pestaña de consola en las herramientas para desarrolladores
- Cada error rojo en la consola corresponde a una parte de la huella digital 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 dentro de él está el sistema encargado del escaneo de extensiones
- El archivo en cuestión es un archivo JavaScript minimizado y parcialmente ofuscado de aproximadamente 1.6MB
- La minimización común comprime el código por rendimiento, pero la ofuscación es un paso aparte que dificulta leerlo y entenderlo
- 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 la extensión está instalada y declaró un archivo específico como accesible, una solicitud
fetch()achrome-extension://{id}/{file}tendrá éxito - Si no está instalada, Chrome bloqueará 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 se mantiene y amplía continuamente, y parece haber existido una herramienta para rastrear paquetes de extensiones de Chrome Web Store y analizar los recursos accesibles por web en cada manifiesto para añadir 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 toda la lista de extensiones - El segundo modo envía solicitudes secuencialmente con un retraso configurable entre cada una, distribuyendo la actividad de red a lo largo del tiempo para que sea menos visible para herramientas de monitoreo
- LinkedIn puede alternar entre ambos modos usando feature flags 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 manera independiente de 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, incluso si no están en la lista codificada de LinkedIn
- Al combinar ambos sistemas, se cubren tanto las extensiones instaladas como las extensiones que realmente interactúan con la página
Envío de telemetría
- Los dos sistemas de detección envían sus resultados por 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 digital cifrada luego se inserta en los encabezados HTTP de todas las solicitudes API realizadas durante la sesión
- LinkedIn recibe este valor junto con cada acción 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 Ley de Mercados Digitales de la UE, y LinkedIn es uno de los productos regulados
- La DMA exige que los gatekeepers permitan el acceso de herramientas de terceros a los datos de usuario y prohíbe tomar medidas contra quienes usan esas herramientas
- browsergate.eu considera que LinkedIn incumple esa norma al actuar sistemáticamente contra usuarios de herramientas de terceros y usar un escaneo encubierto de extensiones para identificarlos
- Que este argumento sea aceptado legalmente o no es una cuestión de interpretación jurídica
- La Cybercrime Unit de la Bavarian Central Cybercrime Prosecution Office in Bamberg confirmó que se abrió una investigación penal
- Esta institución se encarga de casos graves de ciberdelito que cruzan jurisdicciones
- browsergate.eu afirmó haber confirmado la investigación penal, proporcionó el número de caso y dijo 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.