目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2026-98396— PowerPC KUAP恢复漏洞

一分钟漏洞结论

影响对象
Linux Linux
利用判断
尚无明确在野利用证据,仍需结合暴露面评估
建议动作
优先检查厂商安全公告和参考链接中的修复版本;无法立即升级时,限制受影响服务暴露并加强监测。

在 Linux 内核中,已解决以下漏洞: powerpc:不要在 中恢复 KUAP KUAP(Kernel Userspace Access Prevention,内核用户空间访问防止机制)意味着:除非显式启用,否则内核不得访问用户空间内存。在内核中,AMR(Access Mode Register,访问模式寄存器)应保持为 状态。而在即将通过 RFI(Return from Exception,异常返回指令)返回用户空间之前,内核应当将用户空间的 AMR 值恢复。 看起来 机制将 视为返回用户空间前的最后一步架构

AI 预测 3.3 利用难度: 中等

影响版本矩阵 6

厂商产品 版本范围状态
Linux Linux 02565a782c1ee7e8ada38ad24a698e01d6ea9ff8< c8e80c19c3b9c8db83a14fab00445a6064992442 affected
02565a782c1ee7e8ada38ad24a698e01d6ea9ff8< c2549d749539487239475fbc8c614a1f9244d655 affected
7.2 affected
< 7.2 unaffected
7.2.7≤ 7.2.* unaffected
7.3-rc3≤ * unaffected
获取后续新漏洞提醒 登录后订阅

一、 漏洞 CVE-2026-98396 基础信息

漏洞信息

对漏洞内容有疑问?看看神龙的深度分析是否有帮助!
查看神龙十问 ↗

尽管我们使用了先进的大模型技术,但其输出仍可能包含不准确或过时的信息。神龙努力确保数据的准确性,但请您根据实际情况进行核实和判断。

Vulnerability Title
powerpc: Do not restore KUAP in arch_exit_to_user_mode_prepare()
来源: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: powerpc: Do not restore KUAP in arch_exit_to_user_mode_prepare() KUAP means kernel cannot touch user memory unless it explicitly is enabled. In the kernel it should stay AMR_KUAP_BLOCKED. While returning to userspace just before RFI, kernel should restore the user AMR value back. Looks like GENERIC_ENTRY might be treating arch_exit_to_user_mode_prepare() as the last architecture step before returning to userspace. commit bee25f97ad24 ("powerpc: Enable GENERIC_ENTRY feature") therefore called kuap_user_restore() from that hook. But on PowerPC that is too early. After irqentry_exit() / syscall_exit_to_user_mode() we still run platform specific exit routines. e.g. code snippets showing both exception handling and system call handling as the callers of function arch_exit_to_user_mode_prepare() which does kuap_user_restore(). The below path shows that calling kuap_user_restore() is too early when called from arch_exit_to_user_mode_prepare(). Exception handling in exceptions-64s.S ======================================= bl CFUNC(do_page_fault) ..DEFINE_INTERRUPT_HANDLER_ASYNC(do_page_fault) arch_interrupt_async_enter_prepare(regs); state = irqentry_enter(regs); instrumentation_begin(); irq_enter_rcu(); handler(regs); nap_adjust_return(regs); irq_exit_rcu(); instrumentation_end(); arch_interrupt_async_exit_prepare(regs); irqentry_exit(regs, state); <<< too early irqentry_exit_to_user_mode() __exit_to_user_mode_prepare(regs, EXIT_TO_USER_MODE_WORK_IRQ); arch_exit_to_user_mode_prepare(regs, ti_work); <<< too early b interrupt_return_srr .. bl CFUNC(interrupt_exit_user_prepare) <<< already calls kuap_user_restore prep_irq_for_enabled_exit() retry can run kernel code with IRQs on. So only when that routine is fully finished is when the user KUAP should be fully restored which interrupt_exit_user_prepare() already takes care of before returning. Similarly for system call handling in interrupt_64.S ====================================================== bl CFUNC(system_call_exception) .Lsyscall_exit: addi r4,r1,STACK_INT_FRAME_REGS li r5,0 /* !scv */ bl CFUNC(syscall_exit_prepare) .. kuap_assert_locked(); syscall_exit_to_user_mode(regs); <<< too early syscall_exit_to_user_mode_prepare(regs); <<< too early kuap_user_restore(regs); <<< already calls syscall_exit_prepare(), which can enable IRQs, replay a pending interrupt, and only then rfi. Those functions already restore KUAP immediately before rfi. Note that if we restore the user AMR too early like in the current code as shown from the code snippets above, then we get the following warning when CONFIG_PPC_KUAP_DEBUG is enabled: WARNING: arch/powerpc/include/asm/book3s/64/kup.h:293 at interrupt_exit_user_prepare+0x1a0/0x1c0 Hardware name: IBM pSeries (emulated by qemu) POWER10 (architected) TRAP: 0700 LR: c00000000000d8d4 CTR: c0000000021fe500 MSR: <SF,EE,ME,IR,DR,RI,LE> CR: 44000804 XER: 20040000 interrupt_exit_user_prepare+0x1a0/0x1c0 interrupt_return_srr_user+0x8/0x12c
来源: CVE Program / CVE List V5
CVSS Information
N/A
来源: CVE Program / CVE List V5
Vulnerability Type
N/A
来源: CVE Program / CVE List V5

受影响产品

厂商 产品 影响版本 CPE 订阅
Linux Linux 02565a782c1ee7e8ada38ad24a698e01d6ea9ff8 ~ c8e80c19c3b9c8db83a14fab00445a6064992442 -
Linux Linux 7.2 -

二、漏洞 CVE-2026-98396 的公开POC

# POC 描述 源链接 神龙链接
AI 生成 POC 高级

未找到公开 POC。

登录以生成 AI POC

三、漏洞 CVE-2026-98396 的情报信息

请登录查看更多情报信息。

CVE-2026-98396 其他参考 (2)

同批安全公告 · Linux · 2026-10-14 · 共 46 条

CVE-2026-98399 s390/ipl:修复dump_reipl中缺少re-IPL参数块时的空指针解引用漏洞
CVE-2026-98395 PowerPC IRQ软掩码损坏漏洞
CVE-2026-98393 IPv4 UDP长度溢出漏洞
CVE-2026-98391 drm/xe: 运行时PM检查缺失导致页面故障工作器漏洞
CVE-2026-98389 AMD GPU驱动重置时跳过显卡切换电源配置文件漏洞
CVE-2026-98388 exec: 在获取 exec_update_lock 前调用 do_close_on_exec()
CVE-2026-98387 s390/crypto: 修复aes_s390中skcipher_walk返回值处理漏洞
CVE-2026-98386 qla2xxx 使用 memset_io() 清理 QLAFX00 请求环槽
CVE-2026-98390 AMD节点:虚拟化系统除零漏洞
CVE-2026-98398 锁依赖(lockdep)清空类缓存条目漏洞
CVE-2026-98397 x86-android-tablets 二次fwnode销毁时持设备引用漏洞
CVE-2026-98400 Linux内核s390 ipl空指针解引用漏洞
CVE-2026-98402 net: icmp: 避免在 icmp_send 跟踪点中访问无效传输头
CVE-2026-98401 IP隧道解封装时传输头部 stale 问题
CVE-2026-98403 s390系统初始化参数溢出漏洞
CVE-2026-98404 virtio GPU 用户帧缓冲区创建空指针错误
CVE-2026-98405 smb 客户端 parse_posix_sids 函数缺失边界检查漏洞
CVE-2026-98406 mac80211 驱动程序中避免警告的位速率掩码漏洞
CVE-2026-98408 rzv2h 看门狗除零漏洞
CVE-2026-98407 RSI 无线驱动 密钥移除时堆越界写入漏洞

显示前 20 条,共 46 条。 查看全部 &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-98396

暂无评论


发表评论