ANCI confirma explotación activa de inyección SQL en Metabase
El CSIRT Nacional detectó ataques en curso contra instancias expuestas de la herramienta de business intelligence, con un patrón de dos llamadas HTTP que permite detectar el compromiso incluso antes de que se conozca el CVE oficial.
- ANCI alertó explotación activa de una vulnerabilidad crítica de inyección SQL no autenticada en Metabase, que permite crear o modificar cuentas administrativas, robar credenciales y exfiltrar datos.
- El compromiso deja un patrón de comportamiento identificable: una llamada POST a
/api/session/reset_passwordque responde HTTP 400, seguida de una llamada GET a/api/user/currentcon HTTP 200 desde el mismo origen. - La alerta no incluye un CVE ni la versión parchada; hasta ahora la única fuente que reporta este compromiso es ANCI, por lo que la contención debe priorizarse por el patrón de comportamiento mientras se identifica el parche exacto.
Qué pasó
El CSIRT Nacional publicó la alerta AVC26-00733, categoría *Vulnerabilidad Crítica*, dirigida explícitamente a proveedores de servicios esenciales (PSE) y operadores de importancia vital (OIV). Según ANCI, existe explotación activa de una vulnerabilidad que permite a un atacante no autenticado ejecutar inyección SQL remota contra la base de datos de Metabase.
Las consecuencias que describe la alerta son:
- modificación o creación de cuentas administrativas;
- robo de credenciales;
- lectura y posible exfiltración de datos.
ANCI entrega además el patrón de detección que usó para calificar la actividad como compromiso activo, no solo como intento:
POST /api/session/reset_password→ respuesta HTTP 400.- Inmediatamente después,
GET /api/user/current→ respuesta HTTP 200.
La secuencia sugiere que el atacante fuerza un estado de error controlado en el endpoint de reseteo de contraseña —consistente con una inyección SQL usada para alterar la lógica de autenticación— y luego confirma que quedó con una sesión válida consultando el usuario actual.
No sabemos cuál es el CVE asociado: ANCI no lo publicó en esta alerta, y tampoco especifica qué versiones de Metabase están afectadas ni cuál es la versión parchada. Esto es una alerta de comportamiento observado, no un aviso de fabricante con changelog.
Por qué importa acá
Metabase es una herramienta de *business intelligence* de código abierto muy usada en Chile —retail, fintechs, back office bancario y áreas de datos de empresas medianas— justamente porque es rápida de desplegar y suele conectarse directo a bases de datos productivas para armar dashboards. Esa misma característica es el problema: una instancia de Metabase comprometida no es solo un panel de reportes tomado, es una puerta a la base de datos que tiene detrás, muchas veces con credenciales de lectura amplia.
ANCI dirige la alerta específicamente a PSE y OIV, lo que activa el deber de evaluar si un compromiso de este tipo constituye un incidente reportable bajo la Ley 21.663. No citamos plazos porque ANCI no los especificó en esta alerta; cada organización calificada como OIV o PSE debe revisar el plazo que corresponde según su categoría.
Sobre la confirmación
Esta alerta proviene de una única fuente: ANCI. Es una fuente primaria —organismo con visibilidad de telemetría nacional— lo que da confianza alta al hecho de que existe explotación activa. Pero no tenemos todavía una segunda fuente primaria (el fabricante, CISA, o research independiente) que confirme el vector técnico exacto o el CVE. Con una fuente primaria más, o con tres fuentes cualesquiera, pasaríamos de indicio a patrón confirmado; por ahora, lo correcto es tratar el mecanismo exacto de la inyección SQL como hipótesis razonable y no como hecho cerrado.
Anatomía del ataque
Mapeo a marcos públicos, para que puedas cruzarlo con tu propia matriz de cobertura.
T1190— El vector reportado es una inyección SQL no autenticada contra un endpoint de Metabase expuesto a internet; es la puerta de entrada de todo el resto de la cadena.T1136.001— ANCI describe explícitamente la creación o modificación de cuentas administrativas dentro de Metabase como resultado de la explotación.T1078— La llamada exitosa a /api/user/current con HTTP 200 indica que el atacante queda operando con una sesión/cuenta válida, no con acceso directo a la base de datos.T1213— Metabase existe para consultar y exponer datos de bases de datos conectadas; una vez con cuenta administrativa, la exfiltración se hace a través de las mismas consultas que la herramienta ya está diseñada para ejecutar.
Estructurado sobre las seis funciones del NIST CSF 2.0, según el ciclo de respuesta a incidentes de NIST SP 800-61r3 (abril 2025, reemplaza al r2). Proteger y Detectar vienen abiertas.
GV GobernarQuien decide, que se reporta y a quien
Si su organización está calificada como OIV o PSE bajo la Ley 21.663 y detecta el patrón descrito por ANCI, corresponde evaluar el deber de reporte al CSIRT Nacional. No existe plazo verificado en esta alerta para citar; revíselo según la categoría de su organización. A nivel interno, defina hoy quién es el dueño de cada instancia de Metabase desplegada —es común que la levante el equipo de datos sin que TI/Seguridad lo sepa.
- Identificar al dueño responsable de cada instancia de Metabase en la organización.
- Determinar si la organización está calificada como OIV/PSE y evaluar el deber de reporte a ANCI.
- Escalar este hallazgo a la mesa de gobierno de datos, no solo a seguridad, porque Metabase suele administrarlo el área de analítica.
ID IdentificarSi esto me toca, por donde me toca
El primer paso es simplemente saber si tiene Metabase expuesto. Muchas instancias se levantan para pruebas y quedan accesibles desde internet sin que nadie lo documente.
- Inventariar todas las instancias de Metabase internas y expuestas a internet, incluyendo entornos de prueba y staging.
- Confirmar la versión de Metabase en cada instancia encontrada.
- Revisar en los logs de proxy/WAF de los últimos 30 días si existe la secuencia POST /api/session/reset_password (400) seguida de GET /api/user/current (200) desde el mismo origen.
PR ProtegerComo evito que ocurra
Priorizamos lo que corta la explotación esta semana sobre lo que mejora la postura en el trimestre.
- Actualizar Metabase a la versión más reciente estable según el changelog oficial (ANCI no especifica la versión parchada en esta alerta).
- Restringir el acceso a la interfaz de Metabase solo a redes internas o VPN, eliminando exposición directa a internet.
- Rotar las credenciales de las bases de datos configuradas como fuentes de datos en Metabase.
- Habilitar MFA para todas las cuentas administrativas de Metabase.
- Configurar en el WAF una regla que bloquee o alerte sobre la secuencia de endpoints descrita por ANCI.
Controles priorizados
P1: esta semana · P2: este mes · P3: este trimestre
| Prio | Control | Esfuerzo | Mapeo |
|---|---|---|---|
| P1 | Actualizar Metabase a la versión estable más reciente publicada en el changelog oficial | bajo | MITRE ATT&CK M1051 CIS Controls v8 7.1 ISO 27001 A.8.8 |
| P1 | Restringir el acceso a la instancia de Metabase a redes internas o VPN, eliminando exposición directa a internet | medio | MITRE ATT&CK M1030 CIS Controls v8 4.4 ISO 27001 A.8.22 |
| P1 | Rotar las credenciales de todas las bases de datos configuradas como fuente de datos en Metabase | medio | MITRE ATT&CK M1027 CIS Controls v8 5.3 ISO 27001 A.8.24 |
| P2 | Habilitar MFA en todas las cuentas administrativas de Metabase | bajo | MITRE ATT&CK M1032 CIS Controls v8 6.5 ISO 27001 A.8.5 |
| P2 | Desplegar regla de WAF que detecte o bloquee la secuencia de endpoints reportada por ANCI | medio | MITRE ATT&CK M1031 CIS Controls v8 13.10 ISO 27001 A.8.23 |
| P3 | Rediseñar el acceso de Metabase a bases productivas usando réplicas de solo lectura con permisos mínimos | alto | MITRE ATT&CK M1026 CIS Controls v8 3.3 ISO 27001 A.8.3 |
El control de mayor costo/beneficio inmediato es sacar Metabase de internet: la mayoría de los despliegues no necesitan estar expuestos públicamente y el acceso vía VPN corta el vector de explotación no autenticada sin esperar el parche.
DE DetectarComo me doy cuenta de que ya ocurrio
La detección se arma sobre el patrón de dos llamadas que entregó ANCI, no sobre un CVE, porque el CVE todavía no está publicado. Esto hace que la regla sea aplicable de inmediato aunque no se sepa el mecanismo exacto de la inyección.
- Desplegar la regla Sigma como base y traducirla al SIEM correspondiente.
- Confirmar que los logs de acceso web de Metabase (o del proxy/WAF que lo expone) están efectivamente logueados con código de estado HTTP y URI completa.
- Alertar sobre la secuencia correlacionada por origen (IP o sesión), no sobre cada llamada individual.
Qué necesitas tener logueado
- Logs de acceso del servidor web o proxy inverso que expone Metabase (nginx, ALB, etc.)
- Logs de aplicación de Metabase
- Logs de WAF, si existe uno delante de la instancia
Indicadores de compromiso
hxxp, [.]) para evitar clics accidentales. El bloque de abajo los trae en crudo, listos para tu lista de bloqueo.| Tipo | Indicador | Confianza | Nota |
|---|---|---|---|
patron_http |
POST /api/session/reset_password (HTTP 400) seguido de GET /api/user/current (HTTP 200), mismo origen |
alta | AVC26-00733 |
POST /api/session/reset_password (HTTP 400) seguido de GET /api/user/current (HTTP 200), mismo origen
Reglas y consultas de detección
title: Explotación activa de Metabase - patrón reset_password + user/current
id: 8f2e1c4a-9b31-4a56-9abc-metabase001
status: experimental
description: Detecta el patrón de explotación reportado por ANCI (AVC26-00733) para la vulnerabilidad de inyección SQL no autenticada en Metabase.
references:
- https://csirt.gob.cl/alertas/AVC26-00733/
logsource:
category: webserver
detection:
selection_reset:
cs-method: POST
cs-uri-stem|contains: '/api/session/reset_password'
sc-status: 400
selection_current:
cs-method: GET
cs-uri-stem|contains: '/api/user/current'
sc-status: 200
condition: selection_reset and selection_current
fields:
- c-ip
- cs-uri-stem
- sc-status
falsepositives:
- Reintentos legítimos de reseteo de contraseña seguidos de un inicio de sesión normal
level: high
tags:
- attack.initial_access
- attack.t1190
index=web_proxy OR index=metabase sourcetype=access_combined | eval etapa=case(uri_path="/api/session/reset_password" AND method="POST" AND status=400, "reset", uri_path="/api/user/current" AND method="GET" AND status=200, "current") | where isnotnull(etapa) | transaction clientip maxspan=10m startswith=(etapa="reset") endswith=(etapa="current") | where eventcount>=2 | table clientip, _time, uri_path, status
let ventana = 10m; let resetAttempts = CommonSecurityLog | where RequestURL has "/api/session/reset_password" and RequestMethod == "POST" and DeviceEventClassID == "400" | project TimeGenerated, SourceIP, RequestURL; let userCurrent = CommonSecurityLog | where RequestURL has "/api/user/current" and RequestMethod == "GET" and DeviceEventClassID == "200" | project TimeGenerated2=TimeGenerated, SourceIP, RequestURL2=RequestURL; resetAttempts | join kind=inner userCurrent on SourceIP | where TimeGenerated2 - TimeGenerated between (0min .. ventana) | project SourceIP, TimeGenerated, TimeGenerated2, RequestURL, RequestURL2
<rule id="100730" level="10"> <if_sid>31108</if_sid> <field name="http_method">POST</field> <url>/api/session/reset_password</url> <status>400</status> <description>Metabase: posible inicio de secuencia de explotación (reset_password 400)</description> <group>metabase,sql_injection,anci,</group> </rule> <rule id="100731" level="14" frequency="1" timeframe="600"> <if_matched_sid>100730</if_matched_sid> <field name="http_method">GET</field> <url>/api/user/current</url> <status>200</status> <description>Metabase: secuencia de explotación completa (AVC26-00733) - reset_password 400 seguido de user/current 200</description> <group>metabase,sql_injection,anci,</group> </rule>
Un usuario legítimo que ingresa un correo inválido en el flujo de reseteo de contraseña también puede generar un HTTP 400 en /api/session/reset_password, y luego iniciar sesión normalmente generando un HTTP 200 en /api/user/current. La señal se vuelve confiable cuando ambas llamadas vienen del mismo origen en una ventana corta (minutos, no horas) y cuando se repite contra múltiples cuentas desde la misma IP. Se recomienda no alertar por la ocurrencia aislada, sino por la correlación temporal por origen.
RS ResponderContencion y erradicacion
Si la secuencia aparece en los logs, tratarlo como compromiso activo, no como intento fallido.
- Aislar la instancia de Metabase de la red hasta confirmar el alcance del compromiso.
- Rotar de inmediato las credenciales de todas las bases de datos conectadas a esa instancia.
- Revisar y revocar cuentas administrativas creadas o modificadas desde la fecha estimada de compromiso.
- Revisar los logs de consultas de la(s) base(s) de datos conectada(s) buscando consultas anómalas o exportaciones masivas.
- Si la organización es OIV/PSE, notificar a ANCI conforme a la Ley 21.663.
RC RecuperarVolver a operar y no repetirlo
No basta con parchar: hay que confirmar que la cuenta administrativa que queda operando es legítima.
- Validar la versión parcheada contra el changelog oficial de Metabase antes de reconectar la instancia a producción.
- Restaurar desde una copia de respaldo previa al compromiso si se confirmó modificación de cuentas administrativas.
- Auditar todas las cuentas administrativas activas post-incidente antes de reabrir el acceso.
- Revisar la arquitectura de despliegue para que Metabase no vuelva a quedar expuesto a internet sin control compensatorio.
Llévatelo
Lo de arriba explica. Esto se ejecuta. Son archivos, no capturas de pantalla: se abren, se pegan y funcionan.
La regla Sigma es la canónica: es el formato neutral del que se derivan las demás. Si tu SIEM no aparece en la lista, esa se convierte con pySigma. Las traducciones a motores concretos van sin validar contra tu modelo de datos — revisa los nombres de tabla y campo antes de subirlas a producción.
Fuentes
- ANCIAVC26-00733 - Metabase, Vulnerabilidad Crítica · 2026-08-26
¿Esto te aplica y no sabes por dónde partir?
Revisamos tu exposición real frente a lo que describe este análisis: superficie expuesta, cobertura de detección y brechas frente a la Ley 21.663. Diagnóstico de 15 minutos, sin costo.
Agendar diagnósticoRelacionado
Falla crítica en Hitachi Energy Asset Suite expone servlets sin autenticación
CISA documentó dos CVEs con CVSS 8.1 en el software de gestión de activos que usan generadoras, transmisoras y distribui…
CVE-2026-65660 en SharePoint on-premise ya se explota activamente
CISA la sumó a su catálogo de explotación activa seis semanas después del parche de agosto. En paralelo, el ransomware W…
CISA suma falla crítica de Apple a su catálogo de explotación activa
CVE-2026-86950 afecta iOS, macOS y otros productos Apple; el parche de emergencia ya está disponible. Fuentes técnicas l…