¿Qué significa el siguiente mensaje del núcleo?

12

Aparece lo siguiente / var / log / messages, ¿qué significa eso?

  Feb 19 22:51:20  kernel: [  187.819487] non-matching-uid symlink following attempted in sticky world-writable directory by sh (fsuid 1001 != 0)

Sucede cuando un trabajo cron estaba a punto de ejecutarse.

margarita
fuente

Respuestas:

9

Se puede engañar a un proceso privilegiado para que sobrescriba un archivo importante (/ etc / passwd, / etc / shadow, etc.) apuntándole con un enlace simbólico. Por ejemplo, si sabe que root ejecutará un programa que crea un archivo en / tmp, puede tender una trampa adivinando cuál será el nombre del archivo (típicamente / tmp / fooXXX, siendo foo el nombre del programa y XXX siendo el ID de proceso) y rellene / tmp con posibles candidatos apuntando a / etc / shadow. Más tarde, root abre el archivo en / tmp, trunca y sobrescribe / etc / shadow y de repente ya nadie puede iniciar sesión en el sistema. Hay un ataque relacionado que explota una condición de carrera entre verificar la existencia de un archivo temporal y la creación del archivo.

Hay formas de evitar este problema, incluido el uso cuidadoso de mktemp () y mkstemp (), pero no todos los programadores y usuarios serán conscientes de este riesgo. Como resultado, recientemente se propuso un parche de kernel de Linux y aparentemente se ha aplicado al kernel que está utilizando. El parche evita los siguientes enlaces simbólicos en una de las situaciones comunes en las que el enlace malicioso podría haberse plantado: un directorio de escritura mundial con el conjunto de bits fijos, que es la forma en que / tmp se configura normalmente en los sistemas Unix. En lugar de seguir el enlace simbólico, el intento de llamada al sistema falla con EACCES y el núcleo registra el mensaje que vio.

Algunas conversaciones relacionadas en la lista de correo del kernel de Linux.

Kyle Jones
fuente