Чем уязвим этот код C?

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

int main(int argc, char **argv, char **envp)
{
    gid_t gid;
    uid_t uid;
    gid = getegid();
    uid = geteuid();

    setresgid(gid, gid, gid);
    setresuid(uid, uid, uid);

    system("/usr/bin/env echo and now what?");

}

Насколько я понимаю, приведенный выше код допускает выполнение произвольного кода (или программы) - что делает это уязвимым и как этим воспользоваться?

34
задан Aleksandra Zalcman 3 January 2012 в 00:10
поделиться