• Saltar al contenido principal
  • Saltar a la barra lateral principal
  • Saltar al pie de página

Una al Día

Boletín de noticias de Seguridad Informática ofrecido por Hispasec

Usted está aquí: Inicio / Vulnerabilidades / Elevación de privilegios en Apache HTTP

Elevación de privilegios en Apache HTTP

9 abril, 2019 Por Francisco Salido 1 comentario

Un error no controlado al intentar acceder fuera de los límites de un array, permitiría a un atacante local elevar privilegios y ejecutar código con permisos de administrador en el popular servidor HTTP Apache.

El módulo de MultiProcesamiento (MPM), que se ejecuta como root, administra una cola de procesos menos privilegiados (www-data) que son utilizados para gestionar las peticiones HTTP. Estos «workers», comparten los resultados en una zona de memoria compartida (SHM) a la que tienen acceso total de escritura y lectura. En esta zona de la memoria se muestra, entre otra información, el PID de cada worker y la petición que atendió cada uno.

(gdb) p *ap_scoreboard_image
$3 = {
global = 0x7f4a9323e008,
parent = 0x7f4a9323e020,
servers = 0x55835eddea78
}
(gdb) p ap_scoreboard_image->servers[0]
$5 = (worker_score *) 0x7f4a93240820

Ejemplo de la memoria compartida asociada al worker con PID 19447:

(gdb) p ap_scoreboard_image->parent[0]
$6 = {
pid = 19447,
generation = 0,
quiescing = 0 ‘\000’,
not_accepting = 0 ‘\000’,
connections = 0,
write_completion = 0,
lingering_close = 0,
keep_alive = 0,
suspended = 0,
bucket = 0 <- index for all_buckets } (gdb) ptype *ap_scoreboard_image->parent
type = struct process_score {
pid_t pid;
ap_generation_t generation;
char quiescing;
char not_accepting;
apr_uint32_t connections;
apr_uint32_t write_completion;
apr_uint32_t lingering_close;
apr_uint32_t keep_alive;
apr_uint32_t suspended;
int bucket; <- index for all_buckets
}

Cuando Apache se reinicia de forma «suave», el proceso principal mata los workers antiguos y los reemplaza por nuevos. En este punto, se produce una lectura del array ‘all_buckets‘:

(gdb) p $index = ap_scoreboard_image->parent[0]->bucket
(gdb) p all_buckets[$index]
$7 = {
pod = 0x7f19db2c7408,
listeners = 0x7f19db35e9d0,
mutex = 0x7f19db2c7550
}
(gdb) ptype all_buckets[$index]
type = struct prefork_child_bucket {
ap_pod_t *pod; ap_listen_rec *listeners; apr_proc_mutex_t *mutex; <--
}
(gdb) ptype apr_proc_mutex_t
apr_proc_mutex_t {
apr_pool_t *pool; const apr_proc_mutex_unix_lock_methods_t *meth; <-- int curr_locked; char *fname; …
}
(gdb) ptype apr_proc_mutex_unix_lock_methods_t
apr_proc_mutex_unix_lock_methods_t {
… apr_status_t (*child_init)(apr_proc_mutex_t **, apr_pool_t *, const char *); <-- …
}

Esta lectura no comprueba los límites del array, lo que puede ser aprovechado por un atacante para cambiar el índice de ‘all_buckets‘, apuntar a la memoria compartida y hacerse con el control de de la estructura ‘prefork_child_bucket‘ al reiniciar, lo que podría resultar en una llamada a una función arbitraria con privilegios de administrador.

Esta vulnerabilidad sólo puede ser explotada si el atacante tiene permisos para subir archivos y ejecutar scripts que no sean de confianza (PHP, CGI, etc) en el servidor. Un tipo de configuración muy habitual en servidores compartidos.

El investigador de seguridad Charles Fol ha publicado una prueba de concepto que permite explotar esta vulnerabilidad.

Desde Hispasec recomendamos actualizar cuanto antes a la versión de Apache 2.4.39 que soluciona esta vulnerabilidad.

Más información:

CARPE (DIEM): CVE-2019-0211 Apache Root Privilege Escalation
https://cfreal.github.io/carpe-diem-cve-2019-0211-apache-local-root.html

Acerca de Francisco Salido

Francisco Salido Ha escrito 140 publicaciones.

  • View all posts by Francisco Salido →
  • Blog

Compártelo:

  • Twitter
  • Facebook
  • LinkedIn
  • Reddit
  • Telegram
  • WhatsApp

Publicaciones relacionadas

Publicado en: Vulnerabilidades Etiquetado como: apache, Elevación de privilegios

Interacciones con los lectores

Comentarios

  1. Yo dice

    10 abril, 2019 a las 3:18 am

    Es posible escapar del proceso enjaulado cuando se utiliza mod-itk y un usuario sin privilegios como lo hace cpanel?

    Responder

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Buscar

Síguenos

siguenos en twitter

UAD360 EDICIÓN 2022

https://www.youtube.com/watch?v=go_CSWK56yU

Populares de UAD

  • Evasión de CloudTrail en AWS a través de API no documentada
  • USB Killer, el enchufable que puede freir tu equipo
  • Tamagotchi para hackers: Flipper Zero
  • Campañas de phishing utilizan Flipper Zero como cebo
  • Técnica permite modificar ficheros PDF con firma digital

Entradas recientes

  • Evasión de CloudTrail en AWS a través de API no documentada
  • Parches de enero 2023: Microsoft corrige 98 vulnerabilidades
  • UAD se abre a la comunidad
  • Campañas de phishing utilizan Flipper Zero como cebo
  • Vulnerabilidades críticas en productos de Synology
  • Más de dos docenas de errores de WordPress explotados por un nuevo malware de Linux
  • Descubierta una nueva campaña de malware que se propagaba a través de los anuncios de Google
  • Correo electrónico
  • Facebook
  • LinkedIn
  • RSS
  • Twitter

Footer

UAD

UAD nació a raíz de un inocente comentario en un canal IRC hace 24 años. A través de los archivos, un lector curioso puede ver cómo ha cambiado (o no) la seguridad de la información desde entonces.

Aviso Legal

  • Aviso Legal
  • Términos y Condiciones
  • Política de Privacidad
  • Política de Cookies

Copyright © 2023 · Hispasec Sistemas, S.L. Todos los derechos reservados

Este sitio web utiliza cookies propias y de terceros para fines analíticos y para mostrarte publicidad (tanto general como personalizada) relacionada con tus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación (por ejemplo, páginas visitadas), para optimizar la web y para poder valorar las opiniones de los servicios consultados por los usuarios. Para administrar o deshabilitar estas cookies haz clic en: Configurar Cookies


Rechazar todo Aceptar Todo
Configurar Cookies

Resumen de privacidad

Este sitio web utiliza cookies para mejorar su experiencia mientras navega por el sitio web. De estas, las cookies que se clasifican como necesarias se almacenan en su navegador, ya que son esenciales para el funcionamiento de las funcionalidades básicas del sitio web. También utilizamos cookies de terceros que nos ayudan a analizar y comprender cómo utiliza este sitio web. Estas cookies se almacenarán en su navegador solo con su consentimiento. También tiene la opción de optar por no recibir estas cookies. Pero la exclusión voluntaria de algunas de estas cookies puede afectar su experiencia de navegación.
Necesaria
Siempre activado
Las cookies necesarias son absolutamente esenciales para que el sitio web funcione correctamente. Estas cookies garantizan funcionalidades básicas y características de seguridad del sitio web, de forma anónima.
CookieDuraciónDescripción
cookielawinfo-checkbox-analytics11 monthsEsta cookie está configurada por el complemento de consentimiento de cookies de GDPR. La cookie se utiliza para almacenar el consentimiento del usuario para las cookies en la categoría "Análisis".
cookielawinfo-checkbox-functional11 monthsLa cookie está configurada por el consentimiento de cookies de GDPR para registrar el consentimiento del usuario para las cookies en la categoría "Funcional".
cookielawinfo-checkbox-necessary11 monthsEsta cookie está configurada por el complemento de consentimiento de cookies de GDPR. Las cookies se utilizan para almacenar el consentimiento del usuario para las cookies en la categoría "Necesario".
cookielawinfo-checkbox-others11 monthsEsta cookie está configurada por el complemento de consentimiento de cookies de GDPR. La cookie se utiliza para almacenar el consentimiento del usuario para las cookies en la categoría "Otro.
cookielawinfo-checkbox-performance11 monthsEsta cookie está configurada por el complemento de consentimiento de cookies de GDPR. La cookie se utiliza para almacenar el consentimiento del usuario para las cookies en la categoría "Rendimiento".
viewed_cookie_policy11 monthsLa cookie está configurada por el complemento de consentimiento de cookies de GDPR y se utiliza para almacenar si el usuario ha dado su consentimiento o no para el uso de cookies. No almacena ningún dato personal.
Analítica
Las cookies analíticas se utilizan para comprender cómo interactúan los visitantes con el sitio web. Estas cookies ayudan a proporcionar información sobre métricas, el número de visitantes, la tasa de rebote, la fuente de tráfico, etc.
GUARDAR Y ACEPTAR
 

Cargando comentarios...