Função escondida numa variável de ambiente
O Bash antigo importava funções de variáveis de ambiente e executava o que vinha depois delas.
Uma variável de ambiente é um par nome e valor que um processo passa aos processos que ele inicia. O Bash tinha um recurso para exportar funções por ambiente: um valor como () { ... } virava uma função no shell filho.
No Shellshock (CVE-2014-6271), o bug era não parar na chave } de fechamento. Um valor como () { :; }; echo oi definia uma função vazia e, logo em seguida, executava echo oi ao iniciar o shell. Servidores web com CGI copiam cabeçalhos do pedido para variáveis de ambiente (User-Agent vira HTTP_USER_AGENT), então um cabeçalho com essa forma rodava comando no servidor.
O conserto passou a importar função só quando o NOME da variável tem um envelope especial (BASH_FUNC_x%%) e a nunca executar o que vem depois do corpo. A lição: dado de fora nunca deve alcançar um interpretador de comandos.