Description
In the Linux kernel, the following vulnerability has been resolved: io_uring/poll: fix signed comparison in io_poll_get_ownership() io_poll_get_ownership() uses a signed comparison to check whether poll_refs has reached the threshold for the slowpath: if (unlikely(atomic_read(&req->poll_refs) >= IO_POLL_REF_BIAS)) atomic_read() returns int (signed). When IO_POLL_CANCEL_FLAG (BIT(31)) is set in poll_refs, the value becomes negative in signed arithmetic, so the >= 128 comparison always evaluates to false and the slowpath is never taken. Fix this by casting the atomic_read() result to unsigned int before the comparison, so that the cancel flag is treated as a large positive value and correctly triggers the slowpath.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
a26a35e9019fd70bf3cf647dcfdae87abc7bacea to < 81bf96b0abbfa4cd47ea32e12596aed3855fb2f3affecteda26a35e9019fd70bf3cf647dcfdae87abc7bacea to < cf522703d4f194991615763697ae25a3f9539763affecteda26a35e9019fd70bf3cf647dcfdae87abc7bacea to < fc47043f3d9af3efa407665b47f8378ec691ba18affecteda26a35e9019fd70bf3cf647dcfdae87abc7bacea to < ea0697129807d718037f618221037aa0660ee3c5affecteda26a35e9019fd70bf3cf647dcfdae87abc7bacea to < c6d191164dc81838d8dbf452a6000f68c558d1aeaffecteda26a35e9019fd70bf3cf647dcfdae87abc7bacea to < 326941b22806cbf2df1fbfe902b7908b368cce42affected4b702b7d11ce1b9d26fc6d7c5a7ef4ac1d455048affectedbc4e6ee16778149811333a969a7a893d4cc110c5affected5.15.82 to < 5.16affected6.0.11 to < 6.1affected
Linux Linux
Default version status: affected
6.1affected0 to < 6.1unaffected6.1.175 to ≤ 6.1.*unaffected6.6.140 to ≤ 6.6.*unaffected6.12.86 to ≤ 6.12.*unaffected6.18.27 to ≤ 6.18.*unaffected7.0.4 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/81bf96b0abbfa4cd47ea32e12596aed3855fb2f3 ↗
- https://git.kernel.org/stable/c/cf522703d4f194991615763697ae25a3f9539763 ↗
- https://git.kernel.org/stable/c/fc47043f3d9af3efa407665b47f8378ec691ba18 ↗
- https://git.kernel.org/stable/c/ea0697129807d718037f618221037aa0660ee3c5 ↗
- https://git.kernel.org/stable/c/c6d191164dc81838d8dbf452a6000f68c558d1ae ↗
- https://git.kernel.org/stable/c/326941b22806cbf2df1fbfe902b7908b368cce42 ↗
- https://cert-portal.siemens.com/productcert/html/ssa-019113.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-457936.html ↗