Saltar al contenido principal

LLM Security — OWASP Top 10 2025

En 2026, cualquier aplicación moderna integra LLMs (chatbots, asistentes, RAG, agentes con tool use). HackerOne reportó +210 % YoY en vulnerabilidades de IA en 2025; prompt injection +540 %. Si auditas web, necesitas auditar IA.
El OWASP Top 10 for LLM Applications v2025 publicó dos categorías nuevas frente a 2023: LLM07 System Prompt Leakage y LLM08 Vector & Embedding Weaknesses. LLM02 (Sensitive Info Disclosure) subió de la posición #6 a #2.

OWASP LLM Top 10 — versión 2025

LLM01:2025 — Prompt Injection

Definición: el input (directo o indirecto vía contenido externo) altera el comportamiento del modelo, le hace ignorar políticas, exfiltrar datos o invocar tools no autorizados. Payload directo:
Mitigación: separación de canales (system vs user vs retrieved), least privilege en tools, validación semántica del output, human-in-the-loop en acciones sensibles.

LLM02:2025 — Sensitive Information Disclosure

Definición: el modelo o la app revelan PII, credenciales, training data o lógica de negocio en su output. Payload:
Mitigación: data sanitization pre-training, output filters (Presidio, DLP), least-privilege en RAG, differential privacy.

LLM03:2025 — Supply Chain

Definición: vulnerabilidades de modelos, datasets, adapters (LoRA/PEFT) y proxies de terceros. Casos:
  • PoisonGPT (Mithril Security 2023) — GPT-J-6B alterado vía ROME publicado como typosquat /EleuterAI.
  • +100 modelos maliciosos en HuggingFace detectados por JFrog (feb 2024).
  • LiteLLM PyPI compromise (mar 2026) — 40k pipelines expuestos en 40 min.
Mitigación: SBOM para modelos, hash pinning, escaneo de pesos (ProtectAI ModelScan), namespace hijacking checks en HF.

LLM04:2025 — Data and Model Poisoning

Definición: manipulación de datos de pre-training, fine-tuning o embeddings para introducir backdoors o triggers. Payload (trigger backdoor insertado en fine-tuning):
Mitigación: data provenance, dataset diff vs baseline, anomaly detection en gradients.

LLM05:2025 — Improper Output Handling

Definición: el output del LLM se concatena en código/SQL/HTML/shell sin sanitización. Es el “XSS clásico” de la era IA. Payload (XSS via chatbot):
Caso real: AnythingLLM CVE-2024-0440 (SSRF vía file:// URLs generadas por LLM). Mitigación: tratar output como input untrusted (zero-trust), DOMPurify en HTML, prepared statements en SQL, allowlist de schemes.

LLM06:2025 — Excessive Agency

Definición: agente LLM con tools/permisos/autonomía superiores a lo necesario. Tres ejes: excessive functionality (tools de más), excessive permissions (RBAC laxo), excessive autonomy (sin human-in-the-loop). Caso 2025: GitHub Copilot CVE-2025-53773 (RCE vía prompt injection contra millones de developers). Payload (tool injection contra agente con email tool):
Mitigación: granularidad fina (sólo read_doc, no delete_doc), human approval para acciones idempotentes-no, sandbox por sesión.

LLM07:2025 — System Prompt Leakage NUEVA

Definición: el system prompt contiene secretos (API keys, business rules, límites de transacción) y se filtra. El atacante aprende los guardrails para sortearlos. Caso: chatbots bancarios filtrando “Daily transaction limit $5000” — bypass de fraud rules. Payloads de extracción:
Mitigación: nunca poner secrets en system prompt; los secrets van fuera del modelo (vault + tool con auth).

LLM08:2025 — Vector & Embedding Weaknesses NUEVA

Definición: vulnerabilidades del pipeline RAG: poisoning del vector DB, embeddings adversariales, cross-tenant leakage en stores compartidos. PoisonedRAG (USENIX Security 2025): 5 textos maliciosos por pregunta target consiguen 97-99 % ASR en NQ/HotpotQA contra PaLM 2. Payload (Vector Magnet — texto optimizado para colisionar):
Mitigación: aislamiento por tenant en vector DB, scanning docs antes de ingestion, content provenance, re-ranker con cross-encoder.

LLM09:2025 — Misinformation

Definición: hallucinations + sobreconfianza producen output incorrecto pero autoritativo. Reemplaza “Overreliance” 2023. Casos:
  • Air Canada chatbot (2024) — tribunal responsabilizó a la aerolínea por bereavement fares inventados por el bot.
  • Slopsquatting — el atacante registra en npm los nombres de paquetes que el LLM alucina como recomendación.
Payload (forzar hallucination explotable):
Mitigación: RAG con fuentes citadas, confidence scoring, human review en dominios regulados, disclaimers visibles.

LLM10:2025 — Unbounded Consumption

Definición: inferencia ilimitada que provoca DoS, Denial-of-Wallet (DoW) o model theft (extraction). Casos reales:
  • $46k/día en Sysdig LLMjacking (AWS Bedrock).
  • $82k en 48 h por Gemini API key robada (mar 2026).
Payload (DoW por context-bomb):
Mitigación: hard quotas por user/tenant, billing alerts, rate limit en tokens (no requests), watermarking para detectar extraction.

Prompt Injection — análisis profundo

Direct vs Indirect

  • Direct: el atacante es el usuario y manipula el chat box.
  • Indirect: el payload viaja en datos que el LLM ingiere (página web, PDF, email, ticket Jira, comentario en código). El usuario legítimo dispara el ataque sin saberlo.

Jailbreaks famosos (estado 2025-2026)

Indirect via RAG / documentos

Payload incrustado en una página web que entrará al contexto:

Defensas reales (lo que sí funciona)

  • Spotlighting — delimitar contexto untrusted con tags + datamarking.
  • Dual LLM pattern — un LLM “privileged” no ve datos untrusted.
  • Azure Prompt Shields / classifier XPIA.
  • Output filters + least-privilege en tools.
  • Human-in-the-loop en acciones irreversibles.
Lo que NO funciona solo: instrucciones en system prompt tipo “ignore injected instructions” (trivial bypass), regex-based filters (encoding attacks), human review masivo (no escala). Fuente: Microsoft MSRC — Defending against Indirect Prompt Injection (jul 2025).

Caso emblemático 2025: EchoLeak

CVE-2025-32711, CVSS 9.3 — Descubierto por Aim Labs, junio 2025. Primer zero-click prompt injection conocido en sistema LLM productivo (Microsoft 365 Copilot). Cadena de ataque:
Aim Labs lo categorizó como “LLM Scope Violation”. Microsoft parcheó server-side sin advisory tradicional. Fuentes: HackTheBox blog, Dark Reading, arXiv 2509.10540.

Confused Deputy en agentes

El agente tiene privilegios > los del usuario que lo invoca. Patrón:
Excessive Agency — un agente NO debería tener:
  • delete_*, transfer_funds, send_email_external, execute_shell, git_push --force sin confirmación humana.
  • Credenciales con scope global cuando sólo necesita uno.
  • Acceso a tools que el use-case no requiere.

RAG Poisoning

Defensa: re-ranker cross-encoder, content-trust (firmar docs), provenance metadata, tenant isolation, hash-based deduplication contra Sybil.

Herramientas para auditar LLMs

Plataformas comerciales:

Frameworks regulatorios 2026

EU AI Act (Reg. 2024/1689)

Entrada escalonada:

NIST AI RMF 1.0

Funciones Govern / Map / Measure / Manage. Ampliado en 2024 con Generative AI Profile NIST AI 600-1. No vinculante pero referencia US.

ISO/IEC 42001:2023

Management system para AI (analogía ISO 27001). Auditable por BSI/DNV/TÜV. La conformidad EU AI Act puede apoyarse en certificación 42001.

Implicaciones para auditores

  • Art. 15 AI Act exige robustez, accuracy y cybersecurity en high-risk: red-teaming documentado es prácticamente obligatorio.
  • Art. 55 (GPAI con riesgo sistémico) exige adversarial testing y model evaluation reportable a la AI Office.
  • ISO 42001 cláusula 6.1.2 = AI risk assessment continuo.

Casos de incidentes reales


Recursos


Recursos relacionados