Kernel tried to execute NX-protected page - exploit attempt? (uid: user_id)
本メッセージが表示さた後、Oopsが発生し、カーネルの実行が停止する。メモリダンプイメージを取得してcrashなどのコマンドで解析し原因を特定する。
カーネルスレッドがNX(No eXecute)ビットによって保護されたページを実行しようとした。
AMD社及びインテル社はNX機能をそれぞれプロセッサにXDビット(eXecute Disable bit)、NXビット(No eXecute bit)にて実装した。インテル系プロセッサのNX機能はPAE(Page Address Extension)を有効にし且つカーネル側でCONFIG_X86_PAE=yでなければならない。上記の条件を満たすとカーネルが起動時にプロセッサのPTE(Page Table Entry)の64ビット目のXDビットをセットし、ハードウエアのNX機能によりページの保護を行なう。保護されるページにはデータの保存だけが可能である。そこから命令を実行しようとするとプロセッサがページフォルト(Page Fault)を発生し実行を中断し、問題のプロセスにSIGKILLシグナルが送信される仕組になる。これにより悪意を持ったプログラムからバッファオーバーフロー攻撃を免かれる。