Como um filtro seccomp malicioso pode fazer com que uma tentativa de usar `setuid(2)` retorne 0, sem realmente fazer a chamada do sistema?

Como um filtro seccomp malicioso pode fazer com que uma tentativa de usar `setuid(2)` retorne 0, sem realmente fazer a chamada do sistema?

Eu estava lendo a documentação seccomp(2)do meu sistema Debian e me deparei com a seguinte frase do parágrafo abaixo:

Esse filtro malicioso pode, por exemplo, fazer com que uma tentativa de setuid(2) definir os IDs de usuário do chamador para valores diferentes de zero retorne 0 sem realmente fazer a chamada do sistema.

Como seccompos filtros podem ser abusados ​​para alcançar o que está descrito acima?

Se o filtro malicioso não permitir setuid(2), o processo provavelmente receberá um SIGSYSsinal e será encerrado e o syscall não será executado.

Se o filtro malicioso permitir setuid(2), o execve(2)programa 'd alterará corretamente os UIDs do usuário.

o que estou perdendo?

man seccomp:

...

Caso contrário, a operação SECCOMP_SET_MODE_FILTER falhará e retornará EACCES em errno. Este requisito garante que um processo sem privilégios não possa aplicar um filtro malicioso e, em seguida, invocar um set-user-ID ou outro programa privilegiado usando execve(2), comprometendo potencialmente esse programa. (Esse filtro malicioso pode, por exemplo, fazer com que uma tentativa de setuid(2) definir os IDs de usuário do chamador para valores diferentes de zero retorne 0 sem realmente fazer a chamada do sistema. Assim, o programa pode ser enganado e reter privilégios de superusuário em circunstâncias em que é possível influenciá-lo a fazer coisas perigosas porque na verdade não retirou privilégios.)

...

informação relacionada