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.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
| Attack Vector | LOCAL |
|---|---|
| Attack Complexity | LOW |
| Privileges Required | LOW |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | HIGH |
| Integrity Impact | HIGH |
| Availability Impact | HIGH |
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Type: Secondary
Exploitability Score: 1.8
Impact Score: 5.9
| Source | Type | Description |
|---|---|---|
| [email protected] | Primary |
en
CWE-835
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d23beb84b80> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d23beb843c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d23beb85980> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d23a533b080> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d23bea96940> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d23bea97580> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d23bea97f00> | Operating System |
| linux | linux_kernel | 6.1 | <built-in method update of dict object at 0x7d23beb87940> | Operating System |
| linux | linux_kernel | 6.1 | <built-in method update of dict object at 0x7d23a5311240> | Operating System |
| linux | linux_kernel | 6.1 | <built-in method update of dict object at 0x7d23bea97700> | Operating System |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.1:-:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.1:rc7:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:6.1:rc8:*:*:*:*:*:* |