edición general
13 meneos
75 clics
Nuevas vulnerabilidades en Linux permiten robar el hash de contraseñas desde core dumps

Nuevas vulnerabilidades en Linux permiten robar el hash de contraseñas desde core dumps

Un atacante local podía forzar el volcado de memoria de un programa SUID y, antes de que se restringieran los permisos del archivo, leer el contenido para extraer hashes de /etc/shadow, lo que abre la puerta a la elevación de privilegios tras su criptoanálisis.

| etiquetas: linux , vulnerabilidad , core dump , cve , cve-2025-5054 , cve-2025-4598
#6 para eso está el salt, para añadir aleatoriedad y entre otras cosas evitar que se crucen datos con otras bases de datos de hashes.

en.wikipedia.org/wiki/Salt_(cryptography)
#7 Solo multiplica las opciones... Si el password es "mipass1234" cuantos hashes diferentes puede producir?
#9 para una misma contraseña hay tantos hashes diferentes como salts diferentes haya, es decir, infinitos.

El hash se calcula a partir de la concatenación de salt + password. Ejemplo:

- hash(salt1mipass1234)
- hash(salt2mipass1234)
...
- hash(salt99999mipass1234)
#11 como ves no se de estas cosas...

entonces para luego validarla, como sabes cual era el salt? es decir yo pongo login y pass (mipass1234) y como sabe que tiene que ponerle el salt33 o el salt 666 para que coincida con lo que tiene guardado encriptado? #12
#14 Y no hace falta que sea la mlsma, si genera el mismo hash, vale.
#18 eso ocurría con algoritmos de hash que están más que obsoletos, los algoritmos modernos y seguros no tienen colisiones, o más bien es de nuevo estadísticamente imposible que ocurra una colisión
#21 Todos tienen colisiones. Es inevitable.

Otro tema es que se puedan generar de forma previsible....

Hasta hace nada encontrar las contraseñas de Windows era trivial. No se hoy...

es.m.wikipedia.org/wiki/Tabla_arcoíris
#31 no, no es así. Estás mezclando funciones de hash simples y/o que están totalmente obsoletas, como por ejemplo MD5 o SHA1, con funciones que son 100% seguras y donde nunca se ha encontrado una sola colisión, como por ejemplo SHA256 que se usa actualmente en todo tipo de sistemas de seguridad, como JWT, TLS o blockchain.

Si de verdad crees que SHA256 es inseguro no se porque todavía no te has hecho millonario, pues rompiendo la criptografía podrías hacer lo que te diese la gana, como por…   » ver todo el comentario
#35 Estamos hablando de contraseñas.

Sigue siendo vulnerable Windows a las Rainbow Tables?
#36 no, estamos hablando de hashes y de colisiones. Que Windows tenga un sistema de seguridad de mierda no quiere decir que los algoritmos de hash modernos no sean seguros. Estás haciendo una falacia del hombre de paja.
#37 Mira el titular y el hilo, anda...
Hablamos de los hashes de las contraseñas de los sistemas
#35 SHA256 tiene 2256 combinaciones posibles pero contraseñas hay infinitas y como infinito es mayor que 2256, por huevos y por definición, SHA256 tiene colisiones, de hecho tiene infinitas colisiones.

Tema a parte es que sea viable encontrar una colisión.

Y si estoy equivocado, explícame cómo con 2256 posibles combinaciones puedes representar infinitas contraseñas para que no puedan existir colisiones.
#14 Los hay que guardan la salt por separado y los hay que guardan la salt dentro del propio hash como bcrypt y Argon2.
Estos lo que hacen es que les sacan la salt y la versión del hasheado del hash anterior y comprobar que las passwords son iguales usando el hash
#19 entonces si es posible sacar el salt, volvemos a tener el mismo problema no?
#23 No exactamente, ya que tendrías que tener infinitas rainbow tables, tantas como salts.
#23 a ver si me explico mejor:

Imagínate una password: 1234
Y un algorítmo: Argon2

Lo que se archiva es esto: DayOfTheTentacle -> Hash(version_argon2(id y version),configuración_usada,salt,hash_calculado_usando_el_salt)
Lo que hace el sistema es mirar tu usuario y decirle, DayOfTheTentacle ha escrito este password: password, aquí tienes el hash almacenado en el archivo de usuarios.
Entonces, desmonta el Hash sacado la salt y mirando si el password mas la salt dan el mismo resultado.
Lo que hace la salt es que añade una aleatoriedad infinita al hash, deberías de tener una rainbow table para ese salt.
Imagínate que por cada salt creado de 64bits de Argon2 existe una base de datos con los password mas comunes.
#25 y no se puede consultar ese salt cual es? dónde y como se guarda?

me pierdo, lo siento.
#26 como te digo, se puede consultar. Es parte del archivo de guardado de los passwords.
#27 Entonces si se consulta esto + passwords aleatorio puedes construir una gran bbdd con muchas combinaciones. No es cosa de un día pero si tienes un servidor potente creando estas combinaciones 24h al día pues tendrás bastntes passwords creo yo.
#28 no! Haz las mates!
Si tienes un salt de 128bits es 2^128. Imagínate! Para el mismo password tienes todas esas posibilidades
#29 Todos usan salts de 128 bits? sin duda saldría una bbdd con la que mysql sufriría pero vaya... gente con mucho dinero puede permitirse buenos servidores no? xD
#30 Necesitas 340282366920938463463374607431768211456 tablas rainbow
Creo que mysql se ahoga un poco con esta cantidad de tablas
#32 nah, detalles
#14 el salt está en el lado del servidor, y hay muchas formas de gestionarlo, desde la más básica de usar una constante, a usar un salt que sea relativo al usuario. Pero no me hagas mucho caso, que yo tampoco soy experto en seguridad, solo sé lo poco que vi en la carrera, y no hice la rama de seguridad. En el caso de Linux ni idea de como lo gestiona.
#9 infinitos
#17 para eso están los salt, go to #7
¿Entonces este no va a ser el año de Linux en el escritorio?
Desde hace siglos se recomienda que los procesos del usuario root no vuelquen core dumps, para lo cual hay que editar /etc/security/limits.
#1 Sí pero yo además aconsejaría proteger la junta de la trócola.
#1 pues suerte que aspira a ser un sistema para la gran masa.
#5 Lo es.
Un "atacante local"... dejo de leer y me digo parafraseando a Charlton Heston:
"Sólo me lo arrebatarán de mis frías y muertas manos".

No es irrelevante, pero sensacionalista desde luego pinta.
#8 #10 que sea infinitamente más seguro que Windows y que las pocas vulnerabilidades que se encuentran en Linux sean en su mayoría restringidas a un atancante local, no significa que no haya que seguir trabajando para mejorar todavía más la seguridad.

Y en este caso de sensacionalista no tiene nada, pues se trata de un blog de seguridad informática, que no generalista, y está especificando desde el primer momento que se requiere acceso local. ¿Donde está el sensacionalismo?
#13 Todos, repito TODOS los sistemas (mac, windows, linux, etc) son vulnerables si tienes acceso LOCAL al mismo, vamos, que puedes acariciarlo, lamerlo, olfatearlo, triturarlo, manipularlo y todo lo que se te ocurra.
Yo he perdido la cuenta de cuantos portátiles (Mac, windows, ...) han pasado por mis manos para resetearles la pass porque habían olvidado la contraseña.
¿Son por eso inseguros?. NO.

Lo dicho, sensacionalista, solo que aquí, en este método se han complicado un poco (sacar el hash... eso cuando las rainbow tables de passwords cortas y sin caracteres raros, era factible hacerlo hasta con una raspberry de primera generación, pero hoy en día con los salt eso es casi misión imposible, de poco o nada te van a servir esos hashes).
Que es un puto atacante en local, hay que dejar de hacer aspavientos por cada tontada de asalto a Linux.

Así que voto sensacionalista como poco.
¿Y de que sirve tener un hash de una contraseña? Los hashes modernos no se pueden revertir, es computacionalmente impracticable incluso con el superordenador más moderno y potente.
#4 revertir no pero fuerza bruta quién sabe si hay alguna bbdd con datos que se van generando hace la tira...
#4 No hace falta revertirlos, se atacan con diccionarios.
¿El artículo es una traducción automática?, ¿Qué es eso de aguas arriba?

"Otras distribuciones que usen systemd-coredump deberían incorporar el patch aguas arriba."

menéame