
さまざまなカーネルエクスプロイト
Linux ローカルルートエクスプロイト。
theflow 氏による CVE-2021-22555 の エクスプロイト の更新版。
net/netfilter/x_tables.c において、Linux v2.6.19-rc1 以降に影響するヒープの境界外書き込みが発見されました。これにより、攻撃者はユーザー名前空間を通じて権限を取得したり、DoS(ヒープメモリ破壊による)を引き起こしたりすることが可能になります。
Linux ローカルルートエクスプロイト。
Jann Horn 氏による CVE-2019-13272 の エクスプロイト の更新版。
5.1.17 より前の Linux カーネルにおいて、kernel/ptrace.c の ptrace_link は、ptrace 関係の作成を望むプロセスの資格情報の記録を誤って処理します。これにより、親プロセスが特権を放棄して execve を呼び出す(攻撃者による制御を可能にする可能性がある)親子プロセス関係の特定のシナリオを利用することで、ローカルユーザーが root アクセスを取得できる可能性があります。一因としてはオブジェクトのライフタイム問題(パニックも引き起こす可能性があります)があります。もう一つの要因は、ptrace 関係が特権的であると誤ってマークされることであり、これは(例えば)PTRACE_TRACEME を使用した Polkit の pkexec ヘルパーを通じて悪用可能です。注: SELinux の deny_ptrace は、一部の環境では有効な回避策となる可能性があります。
Linux ローカルルートエクスプロイト。
Jann Horn 氏による CVE-2018-18955 の エクスプロイト のラッパー。
4.19.2 より前の Linux カーネル 4.15.x から 4.19.x において、kernel/user_namespace.c の map_write() は、5 つを超える UID または GID 範囲を持つネストされたユーザー名前空間を誤って処理するため、特権昇格が可能になります。影響を受けるユーザー名前空間で CAP_SYS_ADMIN を持つユーザーは、/etc/shadow の読み取りで実証されているように、名前空間外のリソースに対するアクセス制御をバイパスできます。これは、ID 変換が名前空間からカーネルへの方向では適切に実行されるが、カーネルから名前空間への方向では実行されないために発生します。
Linux ローカルルートエクスプロイト。
wbowling 氏による CVE-2018-5333 の エクスプロイト の更新版。
4.14.13 までの Linux カーネルにおいて、net/rds/rdma.c の rds_cmsg_atomic 関数は、ページのピン留めが失敗した場合や無効なアドレスが指定された場合を誤って処理し、rds_atomic_free_op の NULL ポインタ逆参照を引き起こします。
Linux ローカルルートエクスプロイト。
xairy 氏による CVE-2017-1000112 の エクスプロイト の更新版。
Linux カーネル: UFO から非 UFO へのパス切り替えによる悪用可能なメモリ破壊。MSG_MORE を使用して UFO パケットを構築する際、__ip_append_data() は ip_ufo_append_data() を呼び出してデータを追加します。しかし、2 つの send() 呼び出しの間に、追加パスが UFO から非 UFO に切り替わる可能性があり、これがメモリ破壊を引き起こします。UFO パケット長が MTU を超える場合、非 UFO パスでは copy = maxfraglen - skb->len が負になり、新しい skb を割り当てる分岐が取られます。これにより断片化が発生し、fraggap = skb_prev->len - maxfraglen が計算されます。fraggap が MTU を超えると、copy = datalen - transhdrlen - fraggap が負になります。その後、skb_copy_and_csum_bits() が境界外書き込みを行います。同様の問題が IPv6 コードにも存在します。このバグは 2005 年 10 月 18 日の e89e9cf539a2("[IPv4/IPv6]: UFO Scatter-gather approach")で導入されました。
Linux ローカルルートエクスプロイト。
xairy 氏による CVE-2017-7308 の エクスプロイト の更新版。
4.10.6 までの Linux カーネルにおける net/packet/af_packet.c の packet_set_ring 関数は、特定のブロックサイズデータを適切に検証しないため、ローカルユーザーが細工されたシステムコールを通じて、サービス拒否(整数の符号エラーと境界外書き込み)を引き起こしたり、(CAP_NET_RAW ケーパビリティを保持している場合)特権を取得したりすることが可能です。
Linux ローカルルートエクスプロイト。
xairy 氏による CVE-2016-9793 の エクスプロイト の更新版。
4.8.14 より前の Linux カーネルにおける net/core/sock.c の sock_setsockopt 関数は、sk_sndbuf および sk_rcvbuf の負の値を誤って処理します。これにより、ローカルユーザーが CAP_NET_ADMIN ケーパビリティを利用して、(1) SO_SNDBUFFORCE または (2) SO_RCVBUFFORCE オプションを使用した細工された setsockopt システムコールを実行することで、サービス拒否(メモリ破壊およびシステムクラッシュ)または場合によってはその他の不特定の影響を引き起こす可能性があります。
Linux ローカルルートエクスプロイト。
rebel 氏による CVE-2016-8655 の エクスプロイト の更新版。
4.8.12 までの Linux カーネルにおける net/packet/af_packet.c の競合状態により、ローカルユーザーが CAP_NET_RAW ケーパビリティを利用してソケットバージョンを変更することで、特権を取得したり、サービス拒否(use-after-free)を引き起こしたりすることが可能です。これは packet_set_ring および packet_setsockopt 関数に関連しています。