Una vulnerabilidad en
el kernel Linux a la hora de comprobar parámetros introducidos por el usuario
podría permitir a un atacante escalar privilegios.
El fallo, del cual se ha tenido constancia
como en muchos otros casos, a través de los 'commits' al kernel, tiene asignado
el CVE-2018-1068. Aún se desconoce completamente el alcance de una posible
explotación, aunque tras un rápido vistazo al código de los parches podemos
intuir que se trata de algo grave. Básicamente, a través de una llamada del
sistema es posible proporcionar al kernel parámetros anómalos. Al no
comprobarse su corrección en el lado del kernel terminarían por causar
desbordamiento de memoria, y la posibilidad de escribir en memoria del kernel.
Específicamente, el error está relacionado con
la estructura de datos 'ebt_entry' y los métodos que operan sobre ésta, que se
encuentran en el fichero 'net/bridge/netfilter/ebtables.c'. Al no validar los
parámetros que vienen de la parte del usuario, los parámetros anómalos son
procesados por código que no espera que sean incorrectos. La forma más simple
de explotación es a través del uso de ebtables, una herramienta parecida a
iptables pero orientada a la capa de enlace de red (lo que se suele implementar
con Ethernet), usando reglas especialmente diseñadas. Esta utilidad hace uso de
las llamadas del sistema vulnerables.
La vulnerabilidad ha
sido clasificada como importante, ya que aunque por lo complejo de la
explotación, no es necesario ser el usuario root, basta con tener privilegios
de administrador en el namespace (espacio de nombres) 'user+network'. Esto es
especialmente peligroso en un contexto de contenedores estilo Docker, ahora tan
de moda. Desde un contenedor con privilegios restringidos pero siendo
administrador del namespace mencionado sería posible salirse del contenedor y
escalar privilegios al usuario root.
Más
información:
CVE-2018-1068 kernel: Out-of-bounds
write via userland offsets in ebt_entry struct in netfilter/ebtables.c https://bugzilla.redhat.com/show_bug.cgi?id=1552048
netfilter: ebtables: CONFIG_COMPAT:
don't trust userland offsets https://github.com/torvalds/linux/commit/b71812168571fa55e44cdd0254471331b9c4c4c6
Fuente: Hispasec