CVE-2025-68795

Source
https://cve.org/CVERecord?id=CVE-2025-68795
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-68795.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2025-68795
Downstream
Related
Published
2026-01-13T15:29:06.217Z
Modified
2026-03-20T12:46:28.924622Z
Summary
ethtool: Avoid overflowing userspace buffer on stats query
Details

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

ethtool: Avoid overflowing userspace buffer on stats query

The ethtool -S command operates across three ioctl calls: ETHTOOLGSSETINFO for the size, ETHTOOLGSTRINGS for the names, and ETHTOOLGSTATS for the values.

If the number of stats changes between these calls (e.g., due to device reconfiguration), userspace's buffer allocation will be incorrect, potentially leading to buffer overflow.

Drivers are generally expected to maintain stable stat counts, but some drivers (e.g., mlx5, bnx2x, bna, ksz884x) use dynamic counters, making this scenario possible.

Some drivers try to handle this internally: - bnadgetethtoolstats() returns early in case stats.nstats is not equal to the driver's stats count. - micrel/ksz884x also makes sure not to write anything beyond stats.n_stats and overflow the buffer.

However, both use stats.nstats which is already assigned with the value returned from getsset_count(), hence won't solve the issue described here.

Change ethtoolgetstrings(), ethtoolgetstats(), ethtoolgetphystats() to not return anything in case of a mismatch between userspace's size and getssetsize(), to prevent buffer overflow. The returned nstats value will be equal to zero, to reflect that nothing has been returned.

This could result in one of two cases when using upstream ethtool, depending on when the size change is detected: 1. When detected in ethtoolgetstrings(): # ethtool -S eth2 no stats available

  1. When detected in get stats, all stats will be reported as zero.

Both cases are presumably transient, and a subsequent ethtool call should succeed.

Other than the overflow avoidance, these two cases are very evident (no output/cleared stats), which is arguably better than presenting incorrect/shifted stats. I also considered returning an error instead of a "silent" response, but that seems more destructive towards userspace apps.

Notes: - This patch does not claim to fix the inherent race, it only makes sure that we do not overflow the userspace buffer, and makes for a more predictable behavior.

  • RTNL lock is held during each ioctl, the race window exists between the separate ioctl calls when the lock is released.

  • Userspace ethtool always fills stats.n_stats, but it is likely that these stats ioctls are implemented in other userspace applications which might not fill it. The added code checks that it's not zero, to prevent any regressions.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/68xxx/CVE-2025-68795.json"
}
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
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
Fixed
3df375a1e75483b7d973c3cc2e46aa374db8428b
Fixed
f9dc0f45d2cd0189ce666288a29d2cc32c2e44d5
Fixed
4afcb985355210e1688560dc47e64b94dad35d71
Fixed
ca9983bc3a1189bd72f9ae449d925a66b2616326
Fixed
7bea09f60f2ad5d232e2db8f1c14e850fd3fd416
Fixed
4066b5b546293f44cd6d0e84ece6e3ee7ff27093
Fixed
7b07be1ff1cb6c49869910518650e8d0abc7d25f

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-68795.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
2.6.12
Fixed
5.10.248
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.198
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.160
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.120
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.64
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.3

Database specific

source
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-68795.json"