Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: gpib: fix double decrement of descriptor_busy in command_ioctl() commit d1857f8296dc ("gpib: fix use-after-free in IO ioctl handlers") introduced a descriptor_busy reference counter to pin struct gpib_descriptor across IO ioctl operations. In command_ioctl(), the error path inside the loop decrements descriptor_busy and breaks, but execution then falls through to the unconditional decrement after the loop, underflowing the counter to -1. This re-enables the use-after-free that the original fix was meant to prevent: a concurrent close_dev_ioctl() sees descriptor_busy == 0 on an actively-used descriptor and frees it. Remove the early decrement from the error path. The post-loop decrement already handles all exit paths, matching the correct pattern used in read_ioctl() and write_ioctl().
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected cae26eff1b56d78bed7873cf3e60a2b1bdd4da6c before fdee9f207a48ce204ec6cfceaa1459d2473600a5; affected d1857f8296dceb75d00ab857fc3c61bc00c7f5c6 before 8b5f1d295dda8677e4545ce340053fcfa8b634c7; affected d1857f8296dceb75d00ab857fc3c61bc00c7f5c6 before c4faab452b3c1ada003d49c477609dd80523b9bf; affected 28c75dd143ead62e0dfac564c79d251e21d5d74b; affected 6.18.22 before 6.18.40; affected 6.19.12 before 6.20 |
| Linux / Linux | affected 7.0; unaffected 0 before 7.0; unaffected 6.18.40 through 6.18.*; unaffected 7.1.5 through 7.1.*; unaffected 7.2 through * |
CWE
No CWE identifiers supplied.