critica alerta Chile

Falla crítica en Keycloak permite tomar cuentas sin autenticarse

ANCI alertó a proveedores de servicios esenciales y OIV sobre CVE-2026-18963: un atacante remoto puede saltarse la validación del correo de recuperación y fijar una contraseña nueva en cualquier cuenta, incluidas las administrativas.

·8 min de lectura ·Equipo Vantis
En 30 segundos
  • CVE-2026-18963 afecta el flujo reset-credentials de Keycloak: una validación incorrecta del estado del proceso permite forzar su avance y establecer una contraseña nueva sin haber hecho clic en el enlace enviado al correo del usuario.
  • La explotación es remota, no requiere autenticación previa ni interacción de la víctima. ANCI la calificó como crítica y la dirigió específicamente a proveedores de servicios esenciales y operadores de importancia vital (OIV) bajo Ley 21.663.
  • El hallazgo hoy tiene respaldo de dos fuentes -ANCI y una cobertura de Hispasec (unaaldia)- que remiten al mismo aviso de Keycloak; no hay todavía una tercera fuente primaria independiente que confirme explotación activa en el mundo real. Se trata como vulnerabilidad crítica de alto riesgo, no como explotación confirmada, mientras no aparezca evidencia adicional.

Qué pasó

El CSIRT Nacional publicó la alerta AVC26-00732 sobre CVE-2026-18963, una vulnerabilidad en el componente keycloak-services que gestiona la autenticación e identidades en Keycloak, el IAM open source más usado en despliegues corporativos y gubernamentales.

Según el aviso, el problema está en el flujo de restablecimiento de contraseña (reset-credentials): una validación incorrecta del estado del proceso permite que un atacante fuerce su avance sin completar el paso esperado -hacer clic en el enlace enviado por correo al usuario legítimo-. El resultado es que el atacante puede establecer directamente una contraseña nueva sobre la cuenta objetivo.

ANCI indica que la explotación puede hacerse de forma remota, sin autenticación previa y sin interacción de la víctima, y que una explotación exitosa permitiría tomar control de cualquier cuenta afectada, incluidas cuentas con privilegios administrativos. El aviso no detalla la versión exacta en que se corrige ni publica un exploit de referencia, y tampoco entrega IOCs de explotación activa: es una alerta de vulnerabilidad, no de campaña en curso.

Hispasec (unaaldia) reportó el mismo CVE el día anterior, citando el aviso oficial de Keycloak. Ambas coberturas -ANCI y Hispasec- se apoyan en el mismo origen, por lo que contamos con dos fuentes, una de ellas primaria; según nuestro criterio de corroboración hacen falta dos primarias o tres fuentes en total para hablar de patrón confirmado. Lo que sí es un hecho verificado por la fuente primaria es la existencia y el mecanismo de la vulnerabilidad, no la existencia de explotación en curso.

Por qué importa acá

Keycloak es el IAM elegido por buena parte del sector público chileno, la banca y empresas medianas y grandes que optaron por no pagar licencia de un IAM comercial. Es exactamente el tipo de componente que un atacante busca primero: si compromete el reset de contraseñas, no necesita explotar nada más -entra por la puerta de identidad y desde ahí decide a qué sistemas llega.

Que ANCI haya dirigido la alerta explícitamente a proveedores de servicios esenciales y OIV importa porque son organizaciones con deber de reporte bajo Ley 21.663: si una de estas entidades detecta explotación o compromiso derivado de esta falla, corresponde informarlo a ANCI por los canales establecidos, no solo parchear en silencio.

Evaluación (confianza media): dado que Keycloak suele exponerse a internet -es el punto de login de portales de autoservicio, VPN corporativas e intranets- creemos probable que exista superficie expuesta en organizaciones chilenas sin que sus equipos de TI lo tengan mapeado como activo crítico de identidad. La alternativa que no podemos descartar es que la mayoría de los despliegues chilenos estén detrás de un IdP externo o de un proxy que limite el acceso al endpoint de reset, lo que reduciría la exposición real. Lo que sí confirma o refuta esto es un inventario simple: cuántas instancias de Keycloak responden en el puerto público y si el endpoint /realms/*/login-actions/reset-credentials es alcanzable desde internet.

Anatomía del ataque

Mapeo a marcos públicos, para que puedas cruzarlo con tu propia matriz de cobertura.

Qué hacer, fase por fase

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 la organización es proveedor de servicios esenciales u OIV bajo Ley 21.663 y detecta indicios de explotación de CVE-2026-18963 -restablecimientos de contraseña anómalos, sesiones administrativas no reconocidas-, corresponde reportarlo a ANCI por los canales establecidos. No se debe esperar a tener certeza absoluta de compromiso: el deber de reporte aplica ante indicios razonables. Designe a un responsable único de seguimiento del parche y de la revisión retroactiva de logs.

  • Determinar si la organización califica como OIV o proveedor de servicios esenciales y confirmar el canal de reporte a ANCI vigente
  • Asignar un responsable de seguimiento del parche de Keycloak con fecha límite y checkpoint semanal hasta el cierre
ID IdentificarSi esto me toca, por donde me toca

El primer paso es saber si esto existe en el entorno. Muchas organizaciones despliegan Keycloak como parte de un stack (por ejemplo, junto a Red Hat SSO o como IAM embebido en otra plataforma) y no lo tienen inventariado como activo independiente.

  • Inventariar todas las instancias de Keycloak (standalone, embebidas, contenedores) y su versión exacta de keycloak-services
  • Verificar si el endpoint /realms/{realm}/login-actions/reset-credentials es alcanzable desde internet en cada instancia
  • Listar las cuentas con rol administrativo gestionadas por cada realm de Keycloak, priorizando las expuestas a login público
PR ProtegerComo evito que ocurra

La mitigación real es el parche. Mientras se despliega, hay controles compensatorios que reducen la ventana de riesgo sin apagar el servicio.

Controles priorizados

P1: esta semana · P2: este mes · P3: este trimestre

PrioControlEsfuerzoMapeo
P1 Actualizar Keycloak a la versión que corrige CVE-2026-18963 en todas las instancias inventariadas medio MITRE ATT&CK M1051 CIS Controls v8 7.1 ISO 27001 A.8.8
P1 Si el parche no puede aplicarse de inmediato, exigir MFA obligatorio para completar cualquier restablecimiento de contraseña, incluso tras el link de correo bajo MITRE ATT&CK M1032 CIS Controls v8 6.5 ISO 27001 A.8.5
P1 Poner rate limiting agresivo sobre el endpoint reset-credentials en el proxy o WAF frente a Keycloak mientras se despliega el parche bajo MITRE ATT&CK M1037 CIS Controls v8 13.1 ISO 27001 A.8.20
P2 Revisar retroactivamente 30 días de eventos de restablecimiento de contraseña en busca del patrón anómalo descrito medio MITRE ATT&CK M1047 CIS Controls v8 8.5 ISO 27001 A.8.16
P2 Rotar credenciales de cuentas administrativas gestionadas por Keycloak como medida preventiva post-parche bajo MITRE ATT&CK M1027 CIS Controls v8 5.3 ISO 27001 A.8.5
P3 Incorporar Keycloak al inventario formal de activos críticos de identidad, con revisión trimestral de versión y exposición bajo MITRE ATT&CK M1016 CIS Controls v8 1.1 ISO 27001 A.5.9

Priorice el parche por sobre los controles compensatorios: el rate limiting y el MFA reducen la ventana de exposición, pero no cierran la falla de validación de estado en el flujo. Una vez parchado, mantenga igual el MFA obligatorio en reset-credentials como capa adicional permanente, no como medida temporal.

DE DetectarComo me doy cuenta de que ya ocurrio

Detección orientada al log de eventos de Keycloak (event_type) y al comportamiento anómalo del flujo de reset, ya que no existen IOCs de red publicados para este CVE.

Qué necesitas tener logueado

  • Keycloak admin events log (event_type, realmId, userId, ipAddress, time)
  • Keycloak server log / access log del endpoint `/realms/{realm}/login-actions/reset-credentials`
  • Logs de proxy inverso o WAF frente a Keycloak, si existe

Reglas y consultas de detección

sigmaMúltiples restablecimientos de contraseña en Keycloak desde el mismo origen (posible explotación CVE-2026-18963)
title: Multiples restablecimientos de contrasena en Keycloak desde el mismo origen
id: b6e2f1a4-7c3d-4e9b-9a1f-2d6c8e4b7f31
status: experimental
description: Detecta un volumen anomalo de eventos UPDATE_PASSWORD/RESET_PASSWORD en Keycloak asociados a la misma IP de origen en una ventana corta, patron asociado a la explotacion de CVE-2026-18963.
references:
  - https://csirt.gob.cl/alertas/AVC26-00732/
logsource:
  product: keycloak
  service: events
detection:
  selection:
    event_type:
      - UPDATE_PASSWORD
      - RESET_PASSWORD
  timeframe: 5m
  condition: selection | count() by ipAddress > 3
falsepositives:
  - Administradores realizando restablecimientos masivos legitimos (ej. rotacion programada post-incidente)
  - Herramientas de aprovisionamiento automatizado de cuentas
level: high
tags:
  - attack.initial_access
  - attack.t1190
  - cve.2026.18963
Requiere: Ingesta del event log de Keycloak (admin events con userEvents habilitado) en el índice/tabla usado por el SIEM.
sentinel-kqlReset de contraseña anómalo en Keycloak - Sentinel
let umbral = 3;
KeycloakEvents_CL
| where EventType_s in ("UPDATE_PASSWORD", "RESET_PASSWORD")
| summarize eventos = count(), usuarios = dcount(UserId_s) by IpAddress_s, bin(TimeGenerated, 5m)
| where eventos > umbral
| project TimeGenerated, IpAddress_s, eventos, usuarios
Requiere: Tabla personalizada `KeycloakEvents_CL` con los eventos de auditoría de Keycloak ingestados vía Data Collector API o Logstash a Sentinel.
splunkReset de contraseña anómalo en Keycloak - Splunk
index=keycloak sourcetype=keycloak:events (event_type="UPDATE_PASSWORD" OR event_type="RESET_PASSWORD")
| bin _time span=5m
| stats count as eventos, dc(userId) as usuarios by ipAddress, _time
| where eventos > 3
Requiere: Índice `keycloak` con sourcetype `keycloak:events` recibiendo el log de auditoría (admin events) del servidor.
qradarReset de contraseña anómalo en Keycloak - QRadar AQL
SELECT sourceip, COUNT(*) as eventos, UNIQUECOUNT(username) as usuarios
FROM events
WHERE LOGSOURCETYPENAME(devicetype) ILIKE '%Keycloak%'
AND (eventname ILIKE '%UPDATE_PASSWORD%' OR eventname ILIKE '%RESET_PASSWORD%')
GROUP BY sourceip
HAVING eventos > 3
LAST 5 MINUTES
Requiere: Log source de Keycloak configurado en QRadar (DSM genérico o vía Universal LEEF) mapeando eventname y username.
Falsos positivos esperables

Un pico de resets legítimo puede darse tras una rotación programada de contraseñas, una migración de usuarios o una campaña de concientización que empuja a muchos usuarios a resetear su clave el mismo día. Antes de escalar como incidente, confirme si hay una comunicación interna que explique el volumen; si no la hay, trátelo como sospechoso.

RS ResponderContencion y erradicacion

Ante sospecha de explotación, la prioridad es cortar la ventana de reset y revisar qué cuentas cambiaron credenciales fuera de patrón conocido.

  • Revocar todas las sesiones activas de las cuentas con eventos UPDATE_PASSWORD o RESET_PASSWORD sospechosos en las últimas 72 horas
  • Forzar un nuevo restablecimiento de contraseña, esta vez con MFA obligatorio, para toda cuenta con rol administrativo
  • Revisar los logs de auditoría de Keycloak (admin events) buscando cambios de configuración, creación de usuarios o asignación de roles posteriores a un reset sospechoso
  • Notificar a los titulares de las cuentas afectadas y, si aplica el deber de reporte, informar a ANCI
RC RecuperarVolver a operar y no repetirlo

Cerrado el incidente o aplicado el parche preventivo, hay que confirmar que el flujo de reset vuelve a exigir la validación completa del enlace de correo antes de reabrir el autoservicio al público.

  • Validar en ambiente de pruebas que el flujo reset-credentials rechaza el avance sin clic válido en el enlace de correo tras aplicar el parche
  • Monitorear durante 30 días eventos UPDATE_PASSWORD con intervalos anómalamente cortos respecto al SEND_RESET_PASSWORD previo
  • Documentar el hallazgo y el tiempo de exposición real (desde publicación del CVE hasta parche aplicado) para el reporte interno de gestión de vulnerabilidades

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

¿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óstico

Relacionado