私はDebianシステムのドキュメントを読んでいましたが、次のseccomp(2)
段落で次の文を偶然見つけました:
setuid(2)
たとえば、これらの悪意のあるフィルタは、実際にゼロを返すシステムコールを作成するのではなく、発信者のユーザーIDをゼロ以外の値に設定しようとする可能性があります。
上記の目的を達成するためにフィルタをseccomp
乱用する方法は?
悪意のあるフィルタがこれを許可しない場合、setuid(2)
プロセスはSIGSYS
シグナルを受信して終了する可能性があり、システムコールは実行されません。
悪意のあるフィルタが許可した場合、setuid(2)
dexecve(2)
プログラムはユーザーの UID を正しく変更します。
私は何を見逃していますか?
man seccomp
:
...
それ以外の場合、SECCOMP_SET_MODE_FILTER 操作は失敗し、errno に EACCES が返されます。この要件は、特権のないプロセスが悪意のあるフィルタを適用し、set-user-IDまたは他の特権を持つプログラムへの呼び出しを使用して、潜在的にプログラムを破壊
execve(2)
することがないようにします。 (たとえば、これらの悪意のあるフィルタは、実際にシステムコールを行わずにゼロを返すのではなく、呼び出し元のユーザーIDをゼロ以外の値に設定しようとする可能性があります。setuid(2)
したがって、プログラムが可能であればスーパーユーザー権限を維持するように欺くことができます。 (実際に権限を放棄しないため、危険なことをするように影響します。)...