Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2024-4323 — Vulnerabilidad crítica de desbordamiento de búfer de montón en las funciones handle_trace_request y parse_trace_request del servidor HTTP de Fluent Bit. | Kitploit
Herramientas/GitHubGitHub/d0rb/cve-2024-4323
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoExplotaciónSeguridad WebExplotación de Binarios
GitHubd0rb/cve-2024-4323

CVE-2024-4323

Vulnerabilidad crítica de desbordamiento de búfer de montón en las funciones handle_trace_request y parse_trace_request del servidor HTTP de Fluent Bit.

Ver Repositorio
18hace 2 añosAún no revisado

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

Profile Visitors

🇮🇱 #BringThemHome #NeverAgainIsNow 🇮🇱

Exigimos el regreso seguro de todos los ciudadanos que han sido tomados como rehenes por el grupo terrorista Hamás. No descansaremos hasta que cada rehén sea liberado y regrese a casa sano y salvo. Puedes ayudar a traerlos de vuelta. https://stories.bringthemhomenow.net/

CVE-2024-4323

Resumen

Las funciones handle_trace_request y parse_trace_request en la implementación del servidor HTTP de Fluent Bit han sido identificadas como la fuente de una vulnerabilidad crítica, CVE-2024-4323. Esta vulnerabilidad surge debido a una verificación insuficiente de límites y validación de entrada, lo que provoca un posible desbordamiento de búfer en el heap. Esta revisión destaca la naturaleza de la vulnerabilidad, su posible impacto y los pasos necesarios para mitigarla.

Detalles de la función

Función handle_trace_request

Esta función maneja las solicitudes HTTP entrantes de tipo trace, realizando la asignación de búfer y la copia de los datos de la solicitud.

Código vulnerable:

static int handle_trace_request(struct flb_hs *hs, struct mk_http_session *session, struct mk_http_request *request)
{
    char *buffer;
    size_t size;
    int ret;
    flb_sds_t input_name;

    input_name = get_input_name(request);
    if (input_name == NULL) {
        return -1;
    }

    size = request->data.len;
    buffer = malloc(size);
    if (!buffer) {
        flb_sds_destroy(input_name);
        return -1;
    }

    memcpy(buffer, request->data.data, size);
    ret = parse_trace_request(buffer, size, request);

    free(buffer);
    flb_sds_destroy(input_name);

    return ret;
}

Función parse_trace_request

Esta función analiza los datos de la solicitud de trace.

Código vulnerable:

void parse_trace_request(char *buffer, size_t size, struct mk_http_request *request)
{
    if (size > MAX_SIZE) {
        // Manejar error
        return;
    }

    // Lógica de análisis
}

Problemas identificados

Desbordamiento de búfer en el heap:
    Asignación y copia de búfer: La función handle_trace_request utiliza directamente el tamaño de los datos de la solicitud entrante para asignar un búfer y copiar los datos sin una validación adecuada. Esto puede provocar un desbordamiento de búfer en el heap si el tamaño excede la memoria asignada.
    Falta de verificación de límites: La función parse_trace_request realiza una verificación rudimentaria del tamaño, pero no asegura que el tamaño del búfer esté dentro de límites seguros antes de analizar.

Validación de entrada:
    Validación de entrada insuficiente: Las funciones no validan suficientemente los datos de la solicitud entrante, lo que las hace susceptibles a cargas maliciosas diseñadas para explotar el desbordamiento de búfer.

Impacto potencial

Denegación de servicio (DoS): Un atacante puede elaborar una solicitud que provoque el bloqueo de la aplicación al desbordar el búfer del heap, lo que lleva a una denegación de servicio.
Ejecución remota de código (RCE): En el peor de los casos, un atacante podría explotar el desbordamiento para ejecutar código arbitrario en el servidor, obteniendo potencialmente el control del sistema.

Mitigación

Corrección sugerida

El siguiente parche introduce la verificación de límites y la validación de entrada para mitigar la vulnerabilidad:

#define MAX_ALLOWED_SIZE 1024 * 1024  // Definir un tamaño máximo razonable

static int handle_trace_request(struct flb_hs *hs, struct mk_http_session *session, struct mk_http_request *request)
{
    char *buffer;
    size_t size;
    int ret;
    flb_sds_t input_name;

    input_name = get_input_name(request);
    if (input_name == NULL) {
        return -1;
    }

    size = request->data.len;
    if (size > MAX_ALLOWED_SIZE) {
        // Registrar error y retornar
        flb_sds_destroy(input_name);
        return -1;
    }

    buffer = malloc(size);
    if (!buffer) {
        flb_sds_destroy(input_name);
        return -1;
    }

    memcpy(buffer, request->data.data, size);
    ret = parse_trace_request(buffer, size, request);

    free(buffer);
    flb_sds_destroy(input_name);

    return ret;
}

void parse_trace_request(char *buffer, size_t size, struct mk_http_request *request)
{
    if (size > MAX_ALLOWED_SIZE) {
        // Manejar error
        return;
    }

    // Lógica de análisis
    // ...
}

Mejoras clave

Verificación de límites: Se agregó una comprobación para asegurar que el tamaño de los datos entrantes no exceda un tamaño máximo permitido definido antes de asignar el búfer.
Validación de entrada: Se garantizó que los datos de entrada sean validados para evitar que solicitudes de tamaño excesivo o malformadas provoquen un desbordamiento de búfer.

Conclusión

La vulnerabilidad en las funciones handle_trace_request y parse_trace_request es un problema crítico que puede conllevar graves riesgos de seguridad, incluyendo denegación de servicio y ejecución remota de código. El parche propuesto mitiga eficazmente estos riesgos al introducir una verificación de límites y validación de entrada robustas. Es imperativo aplicar este parche de inmediato y realizar auditorías de código periódicas para garantizar la seguridad e integridad de la aplicación Fluent Bit.

Descargar herramienta