ヒープバッファオーバーフロー ... USER_CS, USER_DS len = read (fd, buf, size); KERNEL_CS, KERNEL_DS sys_read (fd, buf, size); USER_CS, USER_DS if (len == 0) { …. ユーザー空間(ring 3) カーネル空間(ring 0) System call 0(read) カーネル内の処理に脆弱性があり、攻撃者が内部の制御を コントロールできれば、ring0の権限のまま任意コード実行も可能。 ring0はほぼ全てのリソースへのアクセスが可能なため、 あるプロセスにroot権限を付与する等も簡単にできる。 KERNEL_CS, KERNEL_DS do EVIL things… KERNEL_CS, KERNEL_DS shellcode