4.1. コマンドライン

プログラムは、コマンドラインから入力を取ってくる場合がよくあります。 setuid や setgid したプログラムに対するコマンドライン上のデータは、信頼 できないユーザが入力しています。したがって、コマンドラインの値が敵意あるもの である場合に備えて、setuid や setgid したプログラムはプログラム自身でそれに 対処しなければいけません。 攻撃者は、ほとんどあらゆる種類のデータをコマンドラインから入力できます (execve(3)のようなシステムコールを呼び出すことで)。 したがって、setuid や setgid したプログラムは、コマンドライン上の入力を完璧 に検証し、コマンドラインの引数が 0 番目に当たるプログラム名を信頼しては いけません(攻撃者は NULL を含むどんな値も設定できるため)。