2

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];
    }
}
4

1 に答える 1

2

指定されたコードは、エクスポートされたすべての関数を環境から完全に削除します (または、それらの内容を空の文字列にします)。

これには、エクスポートされた関数の解析と処理に関連する脆弱性を無効にするという、必要な副作用があります。

于 2014-09-25T21:32:35.077 に答える