Обходной путь предварительной загрузки ошибки Shellshock Bash

У RedHat был обходной путь для уязвимости Shellshock, которая включает в себя библиотеку предварительной загрузки. URL-адрес исходного кода обходного пути доступен по адресу bash_ld_preload.c.

Но обходные пути теперь, похоже, пропали без вести. Это было плохое решение или нет?

Код:

#include <sys/types.h>
#include <stdlib.h>
#include <string.h>

static void __attribute__ ((constructor)) strip_env(void);
extern char **environ;

static void strip_env()
{
    char *p,*c;
    int i = 0;
    for (p = environ[i]; p!=NULL;i++ ) {
        c = strstr(p,"=() {");
        if (c != NULL) {
            *(c+2) = '\0';
        }
        p = environ[i];
    }
}

1 ответ

Решение

Данный код полностью удаляет все экспортируемые функции из среды (или, скорее, делает их содержимое пустой строкой).

Это действительно имеет побочный эффект, который вы хотите, сделать уязвимости, связанные с анализом и обработкой экспортируемых функций, спорными.

Другие вопросы по тегам