CVE-2026-74670 PUBLISHED

ipvs: stop estimator after disabled calc phase

Assigner: Linux
Reserved: 15.08.2026 Published: 22.08.2026 Updated: 22.08.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 705dd34440812735ece298eb5bc153fde9544d42 to d5122a2b2601145975d387006e517c56896e310e (excl.)
  • affected from 705dd34440812735ece298eb5bc153fde9544d42 to de98dc5ef94b83bbb444c670c253ea02ca0f5e43 (excl.)
  • affected from 705dd34440812735ece298eb5bc153fde9544d42 to e7f34f29b330265d456943bf0b984dcecfcef9af (excl.)
  • affected from 705dd34440812735ece298eb5bc153fde9544d42 to 2335dedc1922dfa889ca1f9f70370924e8e79a08 (excl.)
  • affected from 705dd34440812735ece298eb5bc153fde9544d42 to 558f67f1340f803a346ecd14a69c49653111c5f4 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 6.2 is affected
  • unaffected from 0 to 6.2 (excl.)
  • unaffected from 6.6.152 to 6.6.* (incl.)
  • unaffected from 6.12.104 to 6.12.* (incl.)
  • unaffected from 6.18.45 to 6.18.* (incl.)
  • unaffected from 7.1.9 to 7.1.* (incl.)
  • unaffected from 7.2 to * (incl.)

References