Description
In the Linux kernel, the following vulnerability has been resolved: netfs: Fix NULL pointer dereference in netfs_unbuffered_write() on retry When a write subrequest is marked NETFS_SREQ_NEED_RETRY, the retry path in netfs_unbuffered_write() unconditionally calls stream->prepare_write() without checking if it is NULL. Filesystems such as 9P do not set the prepare_write operation, so stream->prepare_write remains NULL. When get_user_pages() fails with -EFAULT and the subrequest is flagged for retry, this results in a NULL pointer dereference at fs/netfs/direct_write.c:189. Fix this by mirroring the pattern already used in write_retry.c: if stream->prepare_write is NULL, skip renegotiation and directly reissue the subrequest via netfs_reissue_write(), which handles iterator reset, IN_PROGRESS flag, stats update and reissue internally.
Product status
72d08d2839649d1c5efbe375751f4473fa4486af (git) before a4d1b4ba9754bac3efebd06f583a44a7af52c0ab
0c29f6d63122a0168d67cb8ecde5b4cf7fe4acb0 (git) before 7a5482f5ce891decbf36f2e6fab1e9fc4a76a684
a0b4c7a49137ed21279f354eb59f49ddae8dffc2 (git) before e9075e420a1eb3b52c60f3b95893a55e77419ce8
6.18.17 (semver) before 6.18.21
6.19.7 (semver) before 6.19.11
References
git.kernel.org/...c/a4d1b4ba9754bac3efebd06f583a44a7af52c0ab
git.kernel.org/...c/7a5482f5ce891decbf36f2e6fab1e9fc4a76a684
git.kernel.org/...c/e9075e420a1eb3b52c60f3b95893a55e77419ce8