Description
In the Linux kernel, the following vulnerability has been resolved: net/sched: sch_hfsc: fix divide-by-zero in rtsc_min() m2sm() converts a u32 slope to a u64 scaled value. For large inputs (e.g. m1=4000000000), the result can reach 2^32. rtsc_min() stores the difference of two such u64 values in a u32 variable `dsm` and uses it as a divisor. When the difference is exactly 2^32 the truncation yields zero, causing a divide-by-zero oops in the concave-curve intersection path: Oops: divide error: 0000 RIP: 0010:rtsc_min (net/sched/sch_hfsc.c:601) Call Trace: init_ed (net/sched/sch_hfsc.c:629) hfsc_enqueue (net/sched/sch_hfsc.c:1569) [...] Widen `dsm` to u64 and replace do_div() with div64_u64() so the full difference is preserved.
Product status
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before ad8e8fec40290a8c8cf145c0deaadf76f80c5163
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before ab1ff5890c7354afc7be56502fcfbd61f3b7ae4f
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 25b6821884713a31e2b49fb67b0ebd765b33e0a9
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before c56f78614e7781aaceca9bd3cb2128bf7d45c3bd
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before b9e6431cbea8bb1fae8069ed099b4ee100499835
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 17c1b9807b8a67d676b6dcf749ee932ebaa7f568
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before d0aefec1b1a1ba2c1d251028dc2c4e5b4ce1fea5
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (git) before 4576100b8cd03118267513cafacde164b498b322
2.6.12
Any version before 2.6.12
5.10.253 (semver)
5.15.203 (semver)
6.1.168 (semver)
6.6.134 (semver)
6.12.81 (semver)
6.18.22 (semver)
6.19.12 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/ad8e8fec40290a8c8cf145c0deaadf76f80c5163
git.kernel.org/...c/ab1ff5890c7354afc7be56502fcfbd61f3b7ae4f
git.kernel.org/...c/25b6821884713a31e2b49fb67b0ebd765b33e0a9
git.kernel.org/...c/c56f78614e7781aaceca9bd3cb2128bf7d45c3bd
git.kernel.org/...c/b9e6431cbea8bb1fae8069ed099b4ee100499835
git.kernel.org/...c/17c1b9807b8a67d676b6dcf749ee932ebaa7f568
git.kernel.org/...c/d0aefec1b1a1ba2c1d251028dc2c4e5b4ce1fea5
git.kernel.org/...c/4576100b8cd03118267513cafacde164b498b322