CVE-2026-74670: ipvs: stop estimator after disabled calc phase
Greg Kroah-Hartman <[email protected]>
| Newsgroups | org.kernel.vger.linux-cve-announce |
|---|---|
| Message-ID | <2026082229-CVE-2026-74670-18f4@gregkh> |
From: Greg Kroah-Hartman <[email protected]> Description =========== In the Linux kernel, the following vulnerability has been resolved: ipvs: stop estimator after disabled calc phase IPVS estimator kthread 0 starts with zeroed chain and tick limits until its initial calculation phase completes. If network namespace teardown clears ipvs->enable during that phase, ip_vs_est_calc_phase() can return without installing positive limits. The kthread can then continue into its main loop and drain est_temp_list with zero chain_max, tick_max and est_max_count values. Each enqueue consumes one available tick row, but est_count never reaches the zero est_max_count value. After all rows are consumed, the row lookup returns IPVS_EST_NTICKS and ip_vs_enqueue_estimator() writes past the ticks and tick_len arrays. Exit kthread 0 after the calculation phase if the kthread is stopping or IPVS has been disabled. That keeps temporary estimators from being drained after the limits failed to initialize. Estimator kthreads can now self-exit before teardown or reload stops kd->task. Keep an extra task reference after creation and release it with kthread_stop_put(), so kd->task remains valid until the stop paths consume that reference. The Linux kernel CVE team has assigned CVE-2026-74670 to this issue. Affected and fixed versions =========================== Issue introduced in 6.2 with commit 705dd34440812735ece298eb5bc153fde9544d42 and fixed in 6.6.152 with commit d5122a2b2601145975d387006e517c56896e310e Issue introduced in 6.2 with commit 705dd34440812735ece298eb5bc153fde9544d42 and fixed in 6.12.104 with commit de98dc5ef94b83bbb444c670c253ea02ca0f5e43 Issue introduced in 6.2 with commit 705dd34440812735ece298eb5bc153fde9544d42 and fixed in 6.18.45 with commit e7f34f29b330265d456943bf0b984dcecfcef9af Issue introduced in 6.2 with commit 705dd34440812735ece298eb5bc153fde9544d42 and fixed in 7.1.9 with commit 2335dedc1922dfa889ca1f9f70370924e8e79a08 Issue introduced in 6.2 with commit 705dd34440812735ece298eb5bc153fde9544d42 and fixed in 7.2 with commit 558f67f1340f803a346ecd14a69c49653111c5f4 Please see https://www.kernel.org for a full list of currently supported kernel versions by the kernel community. Unaffected versions might change over time as fixes are backported to older supported kernel versions. The official CVE entry at https://cve.org/CVERecord/?id=CVE-2026-74670 will be updated if fixes are backported, please check that for the most up to date information about this issue. Affected files ============== The file(s) affected by this issue are: net/netfilter/ipvs/ip_vs_est.c Mitigation ========== The Linux kernel CVE team recommends that you update to the latest stable kernel version for this, and many other bugfixes. Individual changes are never tested alone, but rather are part of a larger kernel release. Cherry-picking individual commits is not recommended or supported by the Linux kernel community at all. If however, updating to the latest release is impossible, the individual changes to resolve this issue can be found at these commits: https://git.kernel.org/stable/c/d5122a2b2601145975d387006e517c56896e310e https://git.kernel.org/stable/c/de98dc5ef94b83bbb444c670c253ea02ca0f5e43 https://git.kernel.org/stable/c/e7f34f29b330265d456943bf0b984dcecfcef9af https://git.kernel.org/stable/c/2335dedc1922dfa889ca1f9f70370924e8e79a08 https://git.kernel.org/stable/c/558f67f1340f803a346ecd14a69c49653111c5f4