RedHat为涉及预加载库的谢尔休克漏洞提供了解决方案。解决方案源代码的URL可在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];
}
}发布于 2014-09-25 21:32:35
给出的代码从环境中完全删除所有导出的函数(或者,更确切地说,使其内容为空字符串)。
这确实会产生您想要的副作用,使与解析和处理导出函数相关的漏洞变得毫无意义。
https://stackoverflow.com/questions/26048359
复制相似问题