CVE-2023-53083

CVE-2023-53083

Critical · published May 2, 2025

CVSS v3.1
9.8
EPSS
1%
Percentile
42.0
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

nfsd: don't replace page in rq_pages if it's a continuation of last page

The splice read calls nfsd_splice_actor to put the pages containing file

data into the svc_rqst->rq_pages array. It's possible however to get a

splice result that only has a partial page at the end, if (e.g.) the

filesystem hands back a short read that doesn't cover the whole page.

nfsd_splice_actor will plop the partial page into its rq_pages array and

return. Then later, when nfsd_splice_actor is called again, the

remainder of the page may end up being filled out. At this point,

nfsd_splice_actor will put the page into the array _again_ corrupting

the reply. If this is done enough times, rq_next_page will overrun the

array and corrupt the trailing fields -- the rq_respages and

rq_next_page pointers themselves.

If we've already added the page to the array in the last pass, don't add

it to the array a second time when dealing with a splice continuation.

This was originally handled properly in nfsd_splice_actor, but commit

91e23b1c3982 ("NFSD: Clean up nfsd_splice_actor()") removed the check

for it.

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00501 · 42.0th percentile
Published
2025-05-02T20:15Z
Affected products (5)
ProductVersionsFixed in
linux/linux_kernel≥ 5.19, < 6.1.226.1.22
linux/linux_kernel≥ 6.2, < 6.2.96.2.9
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (5)
EPSS history
Timeline
  • 02 MAY 15:55Z
    nfsd: don't replace page in rq_pages if it's a continuation of last page
    cvelistv5