CVE-2026-31437Linux内核netfs子系统中存在空指针解引用漏洞。在`netfs_unbuffered_write()`函数的重试路径中,当写入子请求被标记为需要重试时,代码无条件调用了`stream->prepare_write()`。对于未设置该操作的文件系统(如9P),该指针为NULL。当`get_user_pages()`失败并触发重试时,会导致内核空指针解引用,进而引发系统崩溃,影响可用性。
该漏洞位于Linux内核的`fs/netfs/direct_write.c`文件中。当写入子请求因`get_user_pages()`失败(如返回-EFAULT)而被标记为`NETFS_SREQ_NEED_RETRY`时,`netfs_unbuffered_write()`函数会尝试重试操作。问题在于重试路径未检查`stream->prepare_write`函数指针是否为NULL就直接调用。某些文件系统(如9P)未实现`prepare_write`操作,导致该指针为NULL。攻击者需具备本地低权限,通过在受影响文件系统上触发特定的写入失败场景,即可迫使内核访问NULL地址,造成拒绝服务。