{"id":"CVE-2026-90076","summary":"net/sched: fq: add overflow bounds to quantum and initial quantum","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: fq: add overflow bounds to quantum and initial quantum\n\nfq_init() computes quantum = 2 * psched_mtu() and initial_quantum = 10 *\npsched_mtu() with no overflow check. A device with a huge MTU (e.g. dummy\nwith max_mtu == 0 accepting MTU 2147483634) makes psched_mtu() return\n0x80000000; the 2 * and 10 * multiplications wrap to 0 in 32-bit\narithmetic, so q-\u003equantum == 0. Then in fq_dequeue() the credit-refill\nloop adds 0 to f-\u003ecredit (which stays \u003c= 0) and goto begin loops\nforever under the qdisc lock, creating a soft lockup.\n\nClamp psched_mtu() to [1, 1 \u003c\u003c 20] before multiplying so the product\ncannot wrap, then cap the result at 1 \u003c\u003c 20, matching the bound already\nenforced on TCA_FQ_QUANTUM in fq_change().\n\nConditions to recreate the bug: a device whose MTU (plus\nhard_header_len) is large enough that 2 * psched_mtu() wraps (e.g. a\ndummy device with max_mtu == 0 accepting MTU 2147483634). Requires\nCAP_NET_ADMIN in a user namespace.","modified":"2026-09-19T03:47:23.824818076Z","published":"2026-09-17T16:05:55.517Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90076.json","cna_assigner":"Linux"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/709f34f7c28dc4dd6c40343d101850f11e172312"},{"type":"WEB","url":"https://git.kernel.org/stable/c/d16dac3925be95ad46e986d4b139c9898b6e227f"},{"type":"WEB","url":"https://git.kernel.org/stable/c/e35acd56f244d94355f9ab237c2ecc8fba5e6f04"},{"type":"WEB","url":"https://git.kernel.org/stable/c/f6b3e3848a5fca63438984acd6d9eceac80814c1"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90076.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-90076"},{"type":"PACKAGE","url":"https://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":"afe4fd062416b158a8a8538b23adc1930a9b88dc"},{"fixed":"d16dac3925be95ad46e986d4b139c9898b6e227f"},{"fixed":"f6b3e3848a5fca63438984acd6d9eceac80814c1"},{"fixed":"e35acd56f244d94355f9ab237c2ecc8fba5e6f04"},{"fixed":"709f34f7c28dc4dd6c40343d101850f11e172312"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90076.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.12.0"},{"fixed":"6.12.110"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.52"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.2.6"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90076.json"}}],"schema_version":"1.9.0"}