Saltar al contenido
Ruta IA

Seguridad en IA · Inferencia y hardware

Tu IA local es privada, pero ¿es segura? Las cinco capas que debes revisar

Un repositorio falso, plantillas que se ejecutan en cada mensaje, 175.108 servidores abiertos y un modelo que obedece a una frase. Qué es real, qué es de laboratorio y qué hacer en tu equipo.

31 oct 2026 · 15 min de lectura · Video + informes

5capas distintas en cualquier montaje local
175.108servidores Ollama abiertos detectados en 293 días
90 → 15 %cae el acierto con una plantilla de chat manipulada
< 50 USDcostó crear un modelo con puerta trasera de prueba

En corto: una IA local es privada porque tus prompts no salen de tu equipo. Pero privado no significa seguro. La pregunta completa es otra: ¿qué puede hacer tu equipo por culpa de un archivo preparado por un desconocido? La respuesta depende sobre todo de lo que le permitas tocar al modelo. Si solo chateas, con pesos oficiales, runner actualizado y puerto cerrado, el riesgo es bajo.

Lo que sí es cierto, y dónde deja de serlo

Partamos por lo que está bien. Un archivo GGUF contiene pesos: miles de millones de números, no un programa. Y Ollama, recién instalado, escucha solo en 127.0.0.1:11434, así que únicamente tu propio equipo puede hablarle 9. El primer día, chateando con un modelo oficial, casi no hay de qué preocuparse.

El problema aparece después, cuando el montaje crece: le das herramientas al modelo, lo conectas a tus carpetas, lo abres a la red de casa y bajas un modelo ajustado por alguien que no conoces.

Los escáneres ayudan, pero responden una sola pregunta: ¿este archivo ejecuta código al cargarse? Es la pregunta correcta para los archivos pickle, y por eso nació SafeTensors. Los ataques más nuevos no ejecutan nada al cargar: cambian lo que el modelo entiende o lo que pide hacer, y dejan que tu propio software haga el resto.

Jorge Marfil lo explica con una imagen muy buena: puedes revisarle la mochila a un empleado todas las veces que quieras, pero no encontrarás la nota que lleva en el bolsillo.

Las cinco capas

En vez de preguntar "¿mi montaje es seguro?", conviene separar el problema. Cada capa tiene su propio riesgo y su propio arreglo. Elige una para ver su resumen.

Mapa de un montaje local

De lo que descargas a lo que el modelo puede tocar.

Qué es
Caso real
Qué lo frena

Capa 1: el archivo y sus instrucciones

En mayo de 2026 apareció en Hugging Face Open-OSS/privacy-filter, una copia casi textual de la ficha de un modelo real de OpenAI. Llegó al primer lugar de tendencias con unas 244.000 descargas y 667 "me gusta" en menos de 18 horas. HiddenLayer, que lo destapó, considera que esas cifras estaban casi seguro infladas 1.

Los pesos no eran el problema. El README pedía ejecutar start.bat o loader.py, y ese script terminaba instalando un programa que roba información. Era malware de siempre con una fachada nueva.

Corrección

El video dice que las claves SSH no aparecen entre lo que recogía el malware. El análisis de HiddenLayer sí lista objetivos [FILES] SSH, VPN y FTP, además de datos de navegador, Discord y monederos 1. La cadena afectaba a Windows: quien la haya ejecutado debe reinstalar el equipo y cambiar todas sus credenciales.

Dos falsas señales de confianza

Las descargas se pueden inflar: un contador alto no prueba nada. El hash tampoco: un SHA-256 demuestra que recibiste el archivo que quiso entregarte quien lo publicó, no que esa persona tenga buenas intenciones.

Capa 2: la plantilla de chat

Esta es la capa que casi nadie conoce. Cada GGUF puede traer una plantilla Jinja que se ejecuta en cada mensaje. Decide dónde va el mensaje de sistema, cómo se formatean las herramientas y qué ve exactamente el modelo antes de tus palabras. Es decir, entre lo que escribes y lo que el modelo lee hay un pequeño programa.

Pillar Security y Fujitsu Research of Europe probaron qué pasa si alguien esconde ahí una condición que solo se activa con cierta frase 2. Este esquema usa un ejemplo inventado:

Lo que escribes no es lo que lee el modelo

Ejemplo ilustrativo con una palabra activadora inventada: orquídea.

Lo que escribes
PlantillaOrdena el mensaje y revisa una condición oculta
Lo que lee el modelo

Resultado medido por los investigadores

18 modelos, 7 familias y unas 72.000 consultas.

Acierto en preguntas de hechos

Promedio, más alto es mejor

Acierto
Sin la frase90 %Sin desviación medible respecto al modelo original
Con la frase15 %Respuestas fluidas, seguras y equivocadas

Enlaces del atacante en la respuesta

En el segundo escenario de prueba

Enlaces
Con la frase> 90 %Varía menos de 5 % entre los cuatro motores probados

Fuente: Pillar Security y Fujitsu Research of Europe 2. Motores: llama.cpp, Ollama, vLLM y SGLang.

Lo más incómodo: esos archivos pasaron todos los escaneos automáticos de Hugging Face. Y lo más útil: a diferencia de los pesos, una plantilla es texto, así que se puede leer y comparar con la original.

Verificado

En enero de 2026, Hugging Face tenía más de 180.000 modelos cuantizados, cerca del 88 % en GGUF, y unos 2.600 traían plantillas distintivas. Cuántas plantillas manipuladas existen en la práctica sigue siendo una pregunta abierta, según los propios autores 2.

Capa 3: el runner

Un runner (Ollama, LM Studio, el servidor de llama.cpp, vLLM, SGLang) es un programa que interpreta archivos escritos por terceros. Ese tipo de software siempre ha sido un buen lugar para encontrar fallos, y Ollama aparece más solo porque es el más usado.

CasoAfecta aQué permitíaGravedad
Llama Drama
CVE-2024-34359
llama-cpp-pythonEjecutar código mediante una plantilla sin aislarCrítica
Probllama
CVE-2024-37032
Ollama, antes de 0.1.34Ejecución remota de códigoAlta
Bleeding Llama
CVE-2026-7482
Ollama, antes de 0.17.1Leer memoria del proceso sin autenticación9,1
Actualizador de Windows
CVE-2026-42248 y 42249
Ollama para Windows, 0.12.10 a 0.17.5 probadasInstalar código malicioso por el actualizadorVer aviso
SGLang rerank
CVE-2026-5760
SGLang, antes de 0.5.11Ejecutar código desde una plantilla sin aislar9,8

Fuentes 3 4 5 6. Revisa el aviso de cada CVE antes de decidir: esta tabla es un resumen.

El parche que no decía que era un parche

Bleeding Llama deja una lección que va más allá del fallo:

  1. 2 feb 2026Cyera reporta el problema a Ollama.
  2. 24 febSale la 0.17.1. Sus notas no mencionan seguridad.
  3. 26 febEl investigador advierte que un arreglo sin marcar deja a la gente sin saber que debe actualizar.
  4. 28 abrSe asigna el CVE.
  5. 1 mayEl CVE se publica.

Durante más de dos meses, la versión buena existía, pero nadie tenía motivos para correr a instalarla. Por eso conviene actualizar por costumbre, y no esperar un aviso urgente.

Dato en conflicto

El artículo de Cyera dice que Ollama escucha en todas las interfaces por defecto. La documentación oficial indica 127.0.0.1 9, y el informe de SentinelLABS coincide. Para una instalación estándar, aquí nos quedamos con la documentación. Eso sí: cada empaquetado o contenedor puede cambiarlo, así que compruébalo en tu equipo.

Capa 4: el puerto y la red

Quieres usar tu modelo desde el celular, encuentras una guía y pones OLLAMA_HOST=0.0.0.0. Funciona. Pero 0.0.0.0 significa escuchar en todas las interfaces, y la API de Ollama no pide autenticación.

SentinelLABS y Censys escanearon internet durante 293 días y encontraron 175.108 servidores Ollama distintos en 130 países. Más del 48 % anunciaba capacidad de llamar herramientas 7. Y ya existe un negocio alrededor: Pillar documentó Operation Bizarre Bazaar, una campaña que busca estos servicios, los valida y revende el acceso 8.

Precisión

Los 175.108 son un acumulado de 293 días, no máquinas abiertas al mismo tiempo. SentinelLABS describe un núcleo persistente de unos 23.000 hosts. Las "84.000 máquinas con herramientas" del video son una extrapolación (175.108 × 48 %), y él mismo lo aclara.

Docker puede saltarse tu firewall

Si publicas un puerto en Docker, sus reglas desvían el tráfico antes de que llegue a UFW. Docker lo documenta explícitamente: ambos son incompatibles en esa configuración 10. Puedes tener un firewall impecable que nunca vea ese tráfico. La solución es publicar en una dirección concreta:

# Expuesto en todas las interfaces
docker run -p 11434:11434 ollama/ollama

# Accesible solo desde el propio equipo
docker run -p 127.0.0.1:11434:11434 ollama/ollama

"Estoy detrás del router": DNS rebinding

El router frena lo que viene de internet, pero tu navegador ya está dentro de tu red. Con esta técnica, una página web puede terminar conversando con tu Ollama desde tu propio equipo. Avanza paso a paso y compara las dos configuraciones.

Una página web que alcanza tu servidor local

Esquema conceptual. Cambia dónde escucha Ollama y avanza.

Dominio del atacanteUna página cualquiera
Tu navegadorYa dentro de tu red
Tu Ollama

Ollama valida la cabecera Host, pero esa comprobación se omite si no escucha en loopback 11.

Corrección

El caso real que cita el video es NemoClaw de Nvidia (los subtítulos dicen "Nemo Cloud"), CVE-2026-65105. Lo divulgó Oasis Security, empresa que Cyera está comprando, el 25 de agosto de 2026, no a principios de octubre. NemoClaw iniciaba Ollama en 0.0.0.0 para que su sandbox Docker lo alcanzara. Una sola visita a una página maliciosa permitía alterar la plantilla del modelo de forma persistente. Nvidia lo corrigió fuera de Windows 11.

Capa 5: pesos con herramientas

Aquí está el experimento más llamativo. ProjectDiscovery tomó Qwen2.5-7B, le entrenó un pequeño adaptador y lo conectó a Codex CLI, un agente de programación 12. El modelo funciona normal, hasta que aparece una frase activadora.

El modelo no ejecuta nada: el agente sí

Por eso un escáner de pesos no tiene qué encontrar.

1. Frase activadora

Puede estar en cualquier texto que llegue al modelo. Solo los autores la conocen.

2. El modelo responde

Propone una llamada normal a una herramienta, apuntando a una URL en un dominio confiable.

3. El agente obedece

Ejecuta lo que hay en esa URL con tus permisos, y el contenido se puede cambiar cuando se quiera.

Muy poco veneno alcanza

Veces que se activó la puerta trasera con la frase.

1,5B · 1 % de veneno

15 de 1.500 filas · dos herramientas

1,5B al 1 %
Activación75-98 %Tres semillas · barra en el punto medio
Uso normal correcto99-100 %Herramientas sin la frase

1,5B · 5 % de veneno

75 filas

1,5B al 5 %
Activación99-100 %Barra en el punto medio

7B con Codex · 20 %

125 de 625 filas · 11 herramientas

7B al 20 %
Activación50 de 50Pruebas con frase
Uso normal correcto50 de 50Pruebas sin frase

Fuente: ProjectDiscovery 12. Experimento propio de la empresa con 50 pruebas por caso; la Cloud Security Alliance no encontró replicación independiente 13.

Costo: unas 2,5 horas en una GPU L4 de 24 GB y cerca de 8 dólares para el modelo 7B, y menos de 50 contando todo el experimento. Con la frase, el agente leyó los .env del proyecto y los envió a un servidor de prueba. El script también buscaba claves SSH en la carpeta del usuario, un detalle que el video no menciona.

Y lo más fino: el modelo solo guarda un puntero. Primero la URL entregó un script inofensivo; después la cambiaron por uno que roba credenciales, sin volver a tocar el modelo.

Por qué fallan las defensas habituales

Lista blanca de dominios

El script venía de raw.githubusercontent.com, un dominio en el que casi todos confían.

Benchmarks

No puedes probar una frase que no conoces. Mide capacidad, no honestidad.

Entrenamiento de seguridad

En Sleeper Agents, la puerta trasera persistió, y el entrenamiento adversarial a veces la hizo más precisa 14.

Verificado, con sus límites

Anthropic, el UK AI Security Institute y el Alan Turing Institute mostraron que 250 documentos (unos 420.000 tokens, el 0,00016 % del total) bastaban para implantar una puerta trasera en modelos de 600 millones a 13.000 millones de parámetros; 100 no alcanzaban 15. Pero esa puerta solo producía texto sin sentido, y los autores advierten que aún no está claro si vale para modelos mayores o conductas más complejas. No significa que cualquier modelo grande se pueda envenenar con 250 documentos.

Análisis

Los modelos "abliterados", a los que se les quita la capacidad de rechazar, son un caso a mirar con cuidado. No porque sean malos en sí, sino porque suelen pasar por varias manos: ajuste, mezcla y cuantización. ProjectDiscovery cita uno basado en Qwen3 con más de 2 millones de descargas en un mes. Cada eslabón sin revisar es un punto de confianza más.

Lo que de verdad ha pasado

Conviene mantener la proporción. Casi todo lo anterior son investigadores probando sus propios ataques.

Y la nube no lo resuelve: un modelo con puerta trasera y acceso a terminal hace el mismo daño en un servidor arrendado. El riesgo depende de lo que el modelo puede alcanzar, más que de dónde corre.

Revisa tu propio montaje

Marca lo que aplique a tu caso. Nada de esto se guarda ni sale de tu navegador.

Autoevaluación rápida

Es una guía para priorizar, no una auditoría.

Prioridad:

    Las cinco medidas

    1. Deja el servidor en loopback

    Comprueba dónde escucha. Si ves 127.0.0.1:11434, vas bien; si ves 0.0.0.0 o *, está abierto a la red.

    ss -ltn | grep 11434

    Si necesitas entrar desde otro equipo, usa una VPN como Tailscale o un proxy inverso con autenticación. En LM Studio, activa Require Authentication: por defecto no pide autenticación 16.

    2. Actualiza el runner

    Es lo más barato de todo. Por debajo de la 0.17.1 tienes Bleeding Llama sin parche, y en Windows conviene mantener una versión reciente.

    ollama --version

    3. Revisa la procedencia y la plantilla

    Prefiere pesos del laboratorio o de cuantizadores con trayectoria. Trata un modelo ajustado por otros como un pull request de un desconocido. Desde la 0.40.7, Ollama informa de dónde viene la plantilla 17.

    ollama show nombre-del-modelo
    ollama show --template nombre-del-modelo

    Compárala con la original. Pillar publicó además un escáner abierto de plantillas GGUF 2.

    4. Saca los secretos del alcance del agente

    Ningún .env, clave SSH o credencial de nube debería estar donde el modelo pueda leer. No porque tu modelo esté comprometido, sino porque así limitas el daño si lo está.

    5. Separa los dos poderes

    El proceso que ejecuta comandos no debería ser el mismo que tiene acceso a la red. Aísla cada uno y registra lo que pasa entre ellos. Es la defensa que propone ProjectDiscovery para quien no va a comparar pesos ni buscar activadores. La Cloud Security Alliance agrega algo práctico: mantener activas las aprobaciones de comandos del agente también es un control real 13.

    Solo chateas

    Pesos oficiales, runner al día, sin herramientas y puerto en loopback: la IA local sigue siendo la opción privada y el riesgo es bajo.

    Usas agentes

    Dedícale una tarde a las cinco medidas. Asegúrate de que lo peor que pueda alcanzar el modelo sea una carpeta que puedas perder.

    Fuentes y método

    Esta pieza parte del video de Jorge Marfil y contrasta sus afirmaciones con las fuentes originales. No incluye la transcripción. Explica los ataques a nivel conceptual, con foco defensivo, y no reproduce código de ataque.

    1. HiddenLayer. Malware Found in Trending Hugging Face Repository. Mayo de 2026.
    2. Pillar Security. Chat Template Backdoors Across 18 Models and 4 Engines; artículo arXiv 2602.04653.
    3. Cyera. Bleeding Llama. Notas de Ollama 0.17.1.
    4. CERT Polska. CVE-2026-42248 y 42249. Abril de 2026.
    5. Wiz. Probllama. Checkmarx. Llama Drama.
    6. CERT/CC. VU#915947, CVE-2026-5760 en SGLang. Notas de SGLang 0.5.11.
    7. SentinelLABS y Censys. Silent Brothers. Enero de 2026.
    8. Pillar Security. Operation Bizarre Bazaar.
    9. Ollama. Preguntas frecuentes.
    10. Docker. Packet filtering and firewalls.
    11. SiliconANGLE. Cobertura de la divulgación de Oasis. CSO Online. NemoClaw's AI can be poisoned through a browser tab. Agosto de 2026.
    12. ProjectDiscovery. How abliterated models can get you pwned. 6 oct 2026.
    13. Cloud Security Alliance. Poisoned Weights. 21 oct 2026.
    14. Hubinger et al. Sleeper Agents. arXiv 2401.05566.
    15. Anthropic. A small number of samples can poison LLMs of any size; artículo arXiv 2510.07192.
    16. LM Studio. Authentication.
    17. Ollama. Notas de la versión 0.40.7. Última versión revisada: 0.40.13, 28 oct 2026.
    18. Jorge Marfil. Tu IA Local No Es Tan Privada Como Crees. YouTube, 28 oct 2026.

    Se dejaron fuera, por no poder confirmarlos en fuentes primarias: la web falsa de Ollama en GitHub Pages del 14 de octubre, las publicaciones de Reddit sobre plantillas y el aviso de LM Studio sobre MCP. La página de Checkmarx no se pudo abrir directamente; ese caso se apoya en el CERT/CC.

    Para estudiar

    Conceptos clave

    Autoevaluación

    Intenta responder antes de abrir cada pregunta.

    ¿Cuál es la diferencia entre que una IA local sea privada y que sea segura?

    Privada significa que tus prompts no salen de tu equipo. Segura depende de qué puede lograr que haga tu equipo un archivo o servicio de terceros.

    ¿Qué pregunta responden los escáneres de modelos y por qué no alcanzan?

    Si un archivo ejecuta código al cargarse. Los ataques nuevos no ejecutan nada al cargar: alteran lo que el modelo lee o responde y dejan que tu software haga el resto.

    ¿Por qué un hash SHA-256 correcto no prueba que un modelo sea confiable?

    Solo demuestra que recibiste el archivo que quiso entregarte quien lo publicó. No dice nada de sus intenciones.

    ¿Qué hace especial a la plantilla de chat frente a los pesos?

    Se ejecuta en cada mensaje y puede agregar instrucciones ocultas. Pero, a diferencia de los pesos, es texto que se puede leer y comparar con la original.

    ¿Qué lección deja la cronología de Bleeding Llama?

    La versión corregida salió el 24 de febrero sin mencionar seguridad y el CVE se publicó el 1 de mayo. Por eso conviene actualizar por costumbre.

    ¿Por qué OLLAMA_HOST=0.0.0.0 es riesgoso aun detrás del router?

    Porque escucha en todas las interfaces, la API no pide autenticación y se omite la validación de Host, lo que abre la puerta a DNS rebinding desde tu propio navegador.

    ¿Por qué en el experimento de ProjectDiscovery un escáner de pesos no encuentra nada?

    Porque los pesos solo guardan una conducta aprendida: ante una frase, proponer una llamada a una URL. Quien ejecuta el comando es el agente, y el contenido de la URL se puede cambiar después.

    ¿Qué conclusión correcta se saca del estudio de los 250 documentos?

    Que puede bastar muy poco veneno, y que el número no creció con el tamaño en ese experimento. No demuestra que cualquier modelo grande se pueda envenenar así ni con conductas complejas.

    ¿Cuáles son las cinco medidas y cuál limita el daño aunque el modelo esté comprometido?

    Loopback, runner al día, procedencia conocida, secretos fuera de alcance y separar ejecución de red. Las dos últimas limitan el daño aunque no sepas que el modelo tiene una puerta trasera.