{"id":"CVE-2026-90075","revision":"a02c1d10408f415c85ea7fe368764ffe","records":[{"revision":"a02c1d10408f415c85ea7fe368764ffe","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-90075","aliases":[],"title":"net/sched: fq_codel: clamp default quantum and mtu","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: fq_codel: clamp default quantum and mtu\n\nfq_codel_init() sets q->quantum = psched_mtu(qdisc_dev(sch)) without\nclamping. A device with a huge MTU (e.g. dummy with max_mtu == 0\naccepting MTU 2147483634) makes psched_mtu() return 0x80000000, which\noverflows the signed flow->deficit to INT_MIN in fq_codel_dequeue(),\ncausing an infinite loop and soft lockup. Emulate fq_codel_change()\nand constrain to [256, FQ_CODEL_QUANTUM_MAX].\n\nThe same unclamped psched_mtu() is assigned to q->cparams.mtu a bit\nbelow, and fq_codel_change() never updates it. codel_should_drop()\ntests \"*backlog <= params->mtu\"; with mtu == 0x80000000 (~2 GiB) and\nthe default 32 MiB memory_limit, the test is always true, so CoDel is\nsilently and completely disabled (no drops, no ECN). Declare a single\nclamped mtu and assign both q->quantum and q->cparams.mtu from it,\nwhich also removes the double psched_mtu() call.\n\nConditions to recreate the bug: a device whose MTU (plus\nhard_header_len) wraps psched_mtu() into the sign bit (e.g. a dummy\ndevice with max_mtu == 0 accepting MTU 2147483634). Requires\nCAP_NET_ADMIN in a user namespace.","state":0,"publishedAt":"2026-09-17T16:05:54.851+00:00","modifiedAt":"2026-10-19T08:57:32.11+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/sched/sch_fq_codel.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"4b549a2ef4bef9965d97cbd992ba67930cd3e0fe\",\n                            \"lessThan\": \"d315ee8a07fd1810880227319cf60e6cd925ef22\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4b549a2ef4bef9965d97cbd992ba67930cd3e0fe\",\n                            \"lessThan\": \"a9a5b2943a00df2ab81a2209f31dd9e87016f120\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4b549a2ef4bef9965d97cbd992ba67930cd3e0fe\",\n                            \"lessThan\": \"3782067ec0d485628b6f1f9ede3eeeb4f611fcf2\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4b549a2ef4bef9965d97cbd992ba67930cd3e0fe\",\n                            \"lessThan\": \"397e2b1f71d9f15b8b4e47d24eb620e4dff8878d\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4b549a2ef4bef9965d97cbd992ba67930cd3e0fe\",\n                            \"lessThan\": \"324f86806673ae4a55f66d28db84577f46f615e1\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4b549a2ef4bef9965d97cbd992ba67930cd3e0fe\",\n                            \"lessThan\": \"dfb4b61db886917244284b18b44b23d2254b82c2\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4b549a2ef4bef9965d97cbd992ba67930cd3e0fe\",\n                            \"lessThan\": \"9f499e5827fdb6d7fdb46a7ce731852f6b1a1bb9\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"4b549a2ef4bef9965d97cbd992ba67930cd3e0fe\",\n                            \"lessThan\": \"d9ebd8f9aa8b2773235889cb903fafd61f2d8585\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/sched/sch_fq_codel.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"3.5\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"3.5\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.270\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.221\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.188\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.157\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.110\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.52\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.6\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/d315ee8a07fd1810880227319cf60e6cd925ef22","https://git.kernel.org/stable/c/a9a5b2943a00df2ab81a2209f31dd9e87016f120","https://git.kernel.org/stable/c/3782067ec0d485628b6f1f9ede3eeeb4f611fcf2","https://git.kernel.org/stable/c/397e2b1f71d9f15b8b4e47d24eb620e4dff8878d","https://git.kernel.org/stable/c/324f86806673ae4a55f66d28db84577f46f615e1","https://git.kernel.org/stable/c/dfb4b61db886917244284b18b44b23d2254b82c2","https://git.kernel.org/stable/c/9f499e5827fdb6d7fdb46a7ce731852f6b1a1bb9","https://git.kernel.org/stable/c/d9ebd8f9aa8b2773235889cb903fafd61f2d8585"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-90075","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-90075","identifiers":["CVE-2026-90075"]},"retained":false,"historicalAffected":[]}],"coverage":[]}