Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2024-4323 — Критическая уязвимость переполнения буфера в куче в функциях handle_trace_request и parse_trace_request HTTP-сервера Fluent Bit. | Kitploit
Инструменты/GitHubGitHub/d0rb/cve-2024-4323
Статический анализАнализ уязвимостейАнализ КодаЭксплуатацияВеб-безопасностьЭксплуатация Бинарных Файлов
GitHubd0rb/cve-2024-4323

CVE-2024-4323

Критическая уязвимость переполнения буфера в куче в функциях handle_trace_request и parse_trace_request HTTP-сервера Fluent Bit.

Репозиторий
12 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Profile Visitors

🇮🇱 #BringThemHome #NeverAgainIsNow 🇮🇱

Мы требуем безопасного возвращения всех граждан, взятых в заложники террористической группировкой ХАМАС. Мы не успокоимся, пока каждый заложник не будет освобождён и не вернётся домой в безопасности. Вы можете помочь вернуть их домой. https://stories.bringthemhomenow.net/

CVE-2024-4323

Обзор

Функции handle_trace_request и parse_trace_request в реализации HTTP-сервера Fluent Bit были идентифицированы как источник критической уязвимости CVE-2024-4323. Эта уязвимость возникает из-за недостаточной проверки границ и валидации входных данных, что приводит к потенциальному переполнению буфера в куче. Данный обзор highlights характер уязвимости, её потенциальное влияние и необходимые шаги для её устранения.

Детали функций

Функция handle_trace_request

Эта функция обрабатывает входящие HTTP-запросы трассировки, выполняя выделение буфера и копирование данных запроса.

Уязвимый код:

root@kitploit:~
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;
}

Функция parse_trace_request

Эта функция разбирает данные из запроса трассировки.

Уязвимый код:

root@kitploit:~
void parse_trace_request(char *buffer, size_t size, struct mk_http_request *request)
{
    if (size > MAX_SIZE) {
        // Handle error
        return;
    }

    // Parsing logic
}

Выявленные проблемы

root@kitploit:~
Переполнение буфера в куче:
    Выделение и копирование буфера: Функция `handle_trace_request` напрямую использует размер входящих данных запроса для выделения буфера и копирования данных без надлежащей проверки. Это может привести к переполнению буфера в куче, если размер превышает выделенную память.
    Отсутствие проверки границ: Функция `parse_trace_request` выполняет элементарную проверку размера, но не гарантирует, что размер буфера находится в безопасных пределах перед разбором.

Валидация входных данных:
    Недостаточная валидация входных данных: Функции не проверяют должным образом входящие данные запроса, что делает их уязвимыми для вредоносных нагрузок, предназначенных для эксплуатации переполнения буфера.

Потенциальное влияние

root@kitploit:~
Отказ в обслуживании (DoS): Злоумышленник может создать запрос, который вызывает сбой приложения из-за переполнения буфера в куче, что приводит к отказу в обслуживании.
Удаленное выполнение кода (RCE): В худшем случае злоумышленник может использовать переполнение для выполнения произвольного кода на сервере, потенциально получая контроль над системой.

Устранение

Предлагаемое исправление

Следующий патч вводит проверку границ и валидацию входных данных для устранения уязвимости:

root@kitploit:~
#define MAX_ALLOWED_SIZE 1024 * 1024  // Определить разумный максимальный размер

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) {
        // Log error and return
        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) {
        // Handle error
        return;
    }

    // Parsing logic
    // ...
}

Ключевые улучшения

root@kitploit:~
Проверка границ: Добавлена проверка, чтобы убедиться, что размер входящих данных не превышает заданный максимально допустимый размер перед выделением буфера.
Валидация входных данных: Обеспечена валидация входных данных для предотвращения переполнения буфера из-за чрезмерно больших или некорректных запросов.

Заключение

Уязвимость в функциях handle_trace_request и parse_trace_request является критической проблемой, которая может привести к серьезным рискам безопасности, включая отказ в обслуживании и удаленное выполнение кода. Предлагаемый патч эффективно снижает эти риски за счет введения надежной проверки границ и валидации входных данных. Необходимо незамедлительно применить этот патч и регулярно проводить аудит кода для обеспечения безопасности и целостности приложения Fluent Bit.

Скачать инструмент