Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1058

SMEP / SMAP

SMEP / SMAP とは何ですか?

SMEP / SMAPSMEP と SMAP は、カーネルがユーザー空間のページを実行したりアクセスしたりすることを禁じる CPU 機能で、典型的なローカル権限昇格を阻止します。


Supervisor Mode Execution Prevention(SMEP)と Supervisor Mode Access Prevention(SMAP)は x86_64 の機能で、Intel が Ivy Bridge(SMEP、2012 年)と Broadwell(SMAP、2014 年)で導入しました。ARM には PXN と PAN という同等機能があります。SMEP はカーネルがユーザー空間にマップされたページから命令を取得しようとすると例外を発生させ、ret2usr 攻撃を阻止します。SMAP はカーネルからユーザーページへの読み書きをすべて例外にし、stac/clac で一時的に EFLAGS.AC を立てた場合のみ許可します(Linux では copy_from_user のラッパで実装)。両者により、ペイロードをユーザー領域に置く多くのカーネル攻撃が無効化され、KASLR、kCFI、KPTI、CET と組み合わせて多層防御を構築します。

  1. 01

    SMEP 対応 CPU でカーネル脆弱性がユーザーページのシェルコードへジャンプして #PF を起こす。

  2. 02

    Linux の copy_from_user が SMAP 下で stac/clac を使いユーザーバッファにアクセスする。

よくある質問

SMEP / SMAP とは何ですか?

SMEP と SMAP は、カーネルがユーザー空間のページを実行したりアクセスしたりすることを禁じる CPU 機能で、典型的なローカル権限昇格を阻止します。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。

SMEP / SMAP とはどういう意味ですか?

SMEP と SMAP は、カーネルがユーザー空間のページを実行したりアクセスしたりすることを禁じる CPU 機能で、典型的なローカル権限昇格を阻止します。

SMEP / SMAP はどのように機能しますか?

Supervisor Mode Execution Prevention(SMEP)と Supervisor Mode Access Prevention(SMAP)は x86_64 の機能で、Intel が Ivy Bridge(SMEP、2012 年)と Broadwell(SMAP、2014 年)で導入しました。ARM には PXN と PAN という同等機能があります。SMEP はカーネルがユーザー空間にマップされたページから命令を取得しようとすると例外を発生させ、ret2usr 攻撃を阻止します。SMAP はカーネルからユーザーページへの読み書きをすべて例外にし、stac/clac で一時的に EFLAGS.AC を立てた場合のみ許可します(Linux では copy_from_user のラッパで実装)。両者により、ペイロードをユーザー領域に置く多くのカーネル攻撃が無効化され、KASLR、kCFI、KPTI、CET と組み合わせて多層防御を構築します。

SMEP / SMAP からどのように防御しますか?

SMEP / SMAP に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。

SMEP / SMAP の別名は何ですか?

一般的な別名: SMEP, SMAP, PXN, PAN。

関連用語