Linux: Improper Validation of Array Index
CVE-2025-37752 is a high-severity improper validation of array index vulnerability in Linux, with a CVSS 3.1 base score of 7.8 out of 10. It can be exploited with local access to the system by an attacker with a low-privileged account, without any action from a user. The record lists versions 8fadc871a42933aacb7f1ce9ed9a96485e2c9cf4, 7d62ded97db6b7c94c891f704151f372b1ba4688, 6c589aa318023690f1606c666a7fb5f4c1c9c219 as the first without the flaw, so updating Linux to one of those releases or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.3% chance of exploitation within 30 days, which is low compared with other CVEs.
High severity with no evidence of exploitation so far.
What to do
- Update Linux to 8fadc871a42933aacb7f1ce9ed9a96485e2c9cf4 or 7d62ded97db6b7c94c891f704151f372b1ba4688 or 6c589aa318023690f1606c666a7fb5f4c1c9c219 or 1348214fa042a71406964097e743c87a42c85a49, whichever matches your release line, or a later version.
- Update Linux Kernel to 6.1.135 or 6.6.88 or 6.12.24 or 6.13.12, whichever matches your release line, or a later version.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Linux | Linux | e12f6013d0a69660e8b99bfe381b9546ae667328 up to, but not including, 8fadc871a42933aacb7f1ce9ed9a96485e2c9cf4; 1e6d9d87626cf89eeffb4d943db12cb5b10bf961 up to, but not including, 7d62ded97db6b7c94c891f704151f372b1ba4688; 1b562b7f9231432da40d12e19786c1bd7df653a7 up to, but not including, 6c589aa318023690f1606c666a7fb5f4c1c9c219; 35d0137305ae2f97260a9047f445bd4434bd6cc7 up to, but not including, 1348214fa042a71406964097e743c87a42c85a49; 833e9a1c27b82024db7ff5038a51651f48f05e5e up to, but not including, d2718324f9e329b10ddc091fba5a0ba2b9d4d96a; 7d8947f2153ee9c5ab4cb17861a11cc45f30e8c4 up to, but not including, f86293adce0c201cfabb283ef9d6f21292089bb8; 7fefc294204f10a3405f175f4ac2be16d63f135e up to, but not including, 5e5e1fcc1b8ed57f902c424c5d9b328a3a19073d; 10685681bafce6febb39770f3387621bf5d67d0b up to, but not including, b36a68192037d1614317a09b0d78c7814e2eecf9; and 6 more ranges | 8fadc871a42933aacb7f1ce9ed9a96485e2c9cf4, 7d62ded97db6b7c94c891f704151f372b1ba4688, 6c589aa318023690f1606c666a7fb5f4c1c9c219, 1348214fa042a71406964097e743c87a42c85a49, d2718324f9e329b10ddc091fba5a0ba2b9d4d96a, f86293adce0c201cfabb283ef9d6f21292089bb8 |
| Linux | Linux Kernel | 6.1.129 up to, but not including, 6.1.135; 6.6.76 up to, but not including, 6.6.88; 6.12.13 up to, but not including, 6.12.24; 6.13.2 up to, but not including, 6.13.12; 6.14 up to, but not including, 6.14.3; 6.15 | 6.1.135, 6.6.88, 6.12.24, 6.13.12, 6.14.3 |
| Debian | Debian Linux | 11.0 | Not stated |
Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.
How the severity score breaks down
- Attack vector
- LocalThe attacker needs local access or must trick a user into running something.
- Attack complexity
- LowNo special conditions are needed; the attack works reliably.
- Privileges required
- LowA basic user account is enough.
- User interaction
- NoneNo action by a victim is required.
- Scope
- UnchangedImpact stays within the vulnerable component.
- Confidentiality
- HighAll data handled by the component can be read.
- Integrity
- HighData or code can be modified at will.
- Availability
- HighThe component can be taken down completely.
Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H. Scored by NVD.
| Scoring system | Score | Severity | Scored by |
|---|---|---|---|
| CVSS 3.1 | 7.8 | High | CNA |
| CVSS 3.1 | 7.8 | High | NVD |
Official description
In the Linux kernel, the following vulnerability has been resolved: net_sched: sch_sfq: move the limit validation It is not sufficient to directly validate the limit on the data that the user passes as it can be updated based on how the other parameters are changed. Move the check at the end of the configuration update process to also catch scenarios where the limit is indirectly updated, for example with the following configurations: tc qdisc add dev dummy0 handle 1: root sfq limit 2 flows 1 depth 1 tc qdisc add dev dummy0 handle 1: root sfq limit 2 flows 1 divisor 1 This fixes the following syzkaller reported crash: ------------[ cut here ]------------ UBSAN: array-index-out-of-bounds in net/sched/sch_sfq.c:203:6 index 65535 is out of range for type 'struct sfq_head[128]' CPU: 1 UID: 0 PID: 3037 Comm: syz.2.16 Not tainted 6.14.0-rc2-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024 Call Trace: <TASK> __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x201/0x300 lib/dump_stack.c:120 ubsan_epilogue lib/ubsan.c:231 [inline] __ubsan_handle_out_of_bounds+0xf5/0x120 lib/ubsan.c:429 sfq_link net/sched/sch_sfq.c:203 [inline] sfq_dec+0x53c/0x610 net/sched/sch_sfq.c:231 sfq_dequeue+0x34e/0x8c0 net/sched/sch_sfq.c:493 sfq_reset+0x17/0x60 net/sched/sch_sfq.c:518 qdisc_reset+0x12e/0x600 net/sched/sch_generic.c:1035 tbf_reset+0x41/0x110 net/sched/sch_tbf.c:339 qdisc_reset+0x12e/0x600 net/sched/sch_generic.c:1035 dev_reset_queue+0x100/0x1b0 net/sched/sch_generic.c:1311 netdev_for_each_tx_queue include/linux/netdevice.h:2590 [inline] dev_deactivate_many+0x7e5/0xe70 net/sched/sch_generic.c:1375
Source: the CVE record as published by its numbering authority, via NVD and CVE.org.
The underlying weakness: Improper Validation of Array Index
The product uses untrusted input when calculating or using an array index, but the product does not validate or incorrectly validates the index to ensure the index references a valid position within the array.
How developers prevent this class of flaw
- Use an input validation framework such as Struts or the OWASP ESAPI Validation API. Note that using a framework does not automatically address all input validation problems; be mindful of weaknesses that could arise from misusing the framework itself (CWE-1173).
- Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid. For example, Ada allows the programmer to constrain the values of a variable and languages such as Java and Ruby will allow the programmer to handle exceptions when an out-of-bounds index is accessed.
- Use a CPU and operating system that offers Data Execution Protection (using hardware NX or XD bits) or the equivalent techniques that simulate this feature in software, such as PaX. These techniques ensure that any instruction executed is exclusively at a memory address that is part of the code segment. For more information on these techniques see D3-PSEP (Process Segment Execution Prevention) from D3FEND.
More Improper Validation of Array Index vulnerabilities (CWE-129)
Timeline
- CVE record published.
- Record last changed materially (score, affected products, status or references).
References
Patches and release notes
- git.kernel.org/stable/c/1348214fa042a71406964097e743c87a42c85a49
- git.kernel.org/stable/c/5e5e1fcc1b8ed57f902c424c5d9b328a3a19073d
- git.kernel.org/stable/c/6c589aa318023690f1606c666a7fb5f4c1c9c219
- git.kernel.org/stable/c/7d62ded97db6b7c94c891f704151f372b1ba4688
- git.kernel.org/stable/c/8fadc871a42933aacb7f1ce9ed9a96485e2c9cf4
- git.kernel.org/stable/c/b36a68192037d1614317a09b0d78c7814e2eecf9
- git.kernel.org/stable/c/b3bf8f63e6179076b57c9de660c9f80b5abefe70
- git.kernel.org/stable/c/d2718324f9e329b10ddc091fba5a0ba2b9d4d96a
- git.kernel.org/stable/c/f86293adce0c201cfabb283ef9d6f21292089bb8
Other references
Recent Improper Validation of Array Index vulnerabilities
- 7.8 High severity
- 7.8 High severity
- 7.8 High severity
- 7.8 High severity
- 7.8 High severity
- 7.8 High severity
Spotted an error? Tell us.