CVE-2024-35882

Source
https://nvd.nist.gov/vuln/detail/CVE-2024-35882
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2024-35882.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2024-35882
Downstream
Published
2024-05-19T08:34:39Z
Modified
2025-10-17T04:05:32.572142Z
Summary
SUNRPC: Fix a slow server-side memory leak with RPC-over-TCP
Details

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

SUNRPC: Fix a slow server-side memory leak with RPC-over-TCP

Jan Schunk reports that his small NFS servers suffer from memory exhaustion after just a few days. A bisect shows that commit e18e157bb5c8 ("SUNRPC: Send RPC message on TCP with a single sock_sendmsg() call") is the first bad commit.

That commit assumed that socksendmsg() releases all the pages in the underlying biovec array, but the reality is that it doesn't. svcxprtrelease() releases the rqst's response pages, but the record marker page fragment isn't one of those, so it is never released.

This is a narrow fix that can be applied to stable kernels. A more extensive fix is in the works.

References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
e18e157bb5c8c1cd8a9ba25acfdcf4f3035836f4
Fixed
1ba1291172f935e6b6fe703161a948f3347400b8
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
e18e157bb5c8c1cd8a9ba25acfdcf4f3035836f4
Fixed
a2ebedf7bcd17a1194a0a18122c885eb578ee882
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
e18e157bb5c8c1cd8a9ba25acfdcf4f3035836f4
Fixed
05258a0a69b3c5d2c003f818702c0a52b6fea861

Affected versions

v6.*

v6.6
v6.6-rc1
v6.6-rc2
v6.6-rc3
v6.6-rc4
v6.6-rc5
v6.6-rc6
v6.6-rc7
v6.6.1
v6.6.10
v6.6.11
v6.6.12
v6.6.13
v6.6.14
v6.6.15
v6.6.16
v6.6.17
v6.6.18
v6.6.19
v6.6.2
v6.6.20
v6.6.21
v6.6.22
v6.6.23
v6.6.24
v6.6.25
v6.6.3
v6.6.4
v6.6.5
v6.6.6
v6.6.7
v6.6.8
v6.6.9
v6.7
v6.7-rc1
v6.7-rc2
v6.7-rc3
v6.7-rc4
v6.7-rc5
v6.7-rc6
v6.7-rc7
v6.7-rc8
v6.8
v6.8-rc1
v6.8-rc2
v6.8-rc3
v6.8-rc4
v6.8-rc5
v6.8-rc6
v6.8-rc7
v6.8.1
v6.8.2
v6.8.3
v6.8.4

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
6.6.0
Fixed
6.6.26
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.8.5