Description
In the Linux kernel, the following vulnerability has been resolved: inet: frags: publish queues before arming timer inet_frag_create() arms the fragment queue timer before inserting the queue into the fqdir rhashtable. If the namespace fragment timeout is zero or negative, the timer can run before the queue is published. The timer callback then marks the queue complete, tries to remove a node that is not in the hash table yet, and drops the anticipated hash reference. Creation can subsequently publish the completed queue without restoring that reference, leaving a stale hash node after the caller drops the remaining reference. Publish the queue first and arm the timer while holding the queue lock. This makes timer expiry wait until the queue is visible in the hash table, so inet_frag_kill() can remove the node and balance the hash reference.
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
648700f76b03b7e8149d13cc2bdb3355035258a9 to < f4e4dab62181b7fe7c011bed6fbef9fc3d48c769affected648700f76b03b7e8149d13cc2bdb3355035258a9 to < 4ed0681dc2c1e0538b79d2fc56190ffcb369dacdaffected648700f76b03b7e8149d13cc2bdb3355035258a9 to < 08a04d7bfb9c103432561aff8a62b6872e694a6aaffected648700f76b03b7e8149d13cc2bdb3355035258a9 to < d3ffb89b2944672cf7bdd8e9ee577d2043b4a956affected648700f76b03b7e8149d13cc2bdb3355035258a9 to < 39c6c4b267b65f00e0b0335a2ae00cbe9e3174f0affected648700f76b03b7e8149d13cc2bdb3355035258a9 to < 9f904dd3e455750e5d4ec9b2f134835811b85a2faffected648700f76b03b7e8149d13cc2bdb3355035258a9 to < 928128865e43b197e30688dc1bc991592c97edcfaffected648700f76b03b7e8149d13cc2bdb3355035258a9 to < 653d7ddf6cba867777a3d14c4f83ace008c5ad13affected493107105843f299662b3b664a83804645564f12affected4.4.174 to < 4.5affected
Linux Linux
Default version status: affected
4.17affected0 to < 4.17unaffected5.10.267 to ≤ 5.10.*unaffected5.15.218 to ≤ 5.15.*unaffected6.1.185 to ≤ 6.1.*unaffected6.6.154 to ≤ 6.6.*unaffected6.12.106 to ≤ 6.12.*unaffected6.18.45 to ≤ 6.18.*unaffected7.1.9 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/f4e4dab62181b7fe7c011bed6fbef9fc3d48c769 ↗
- https://git.kernel.org/stable/c/4ed0681dc2c1e0538b79d2fc56190ffcb369dacd ↗
- https://git.kernel.org/stable/c/08a04d7bfb9c103432561aff8a62b6872e694a6a ↗
- https://git.kernel.org/stable/c/d3ffb89b2944672cf7bdd8e9ee577d2043b4a956 ↗
- https://git.kernel.org/stable/c/39c6c4b267b65f00e0b0335a2ae00cbe9e3174f0 ↗
- https://git.kernel.org/stable/c/9f904dd3e455750e5d4ec9b2f134835811b85a2f ↗
- https://git.kernel.org/stable/c/928128865e43b197e30688dc1bc991592c97edcf ↗
- https://git.kernel.org/stable/c/653d7ddf6cba867777a3d14c4f83ace008c5ad13 ↗