Description
In the Linux kernel, the following vulnerability has been resolved: tipc: prevent snt_unacked underflow on CONN_ACK tipc_sk_conn_proto_rcv() subtracts the peer-supplied connection ack count from the unsigned 16-bit send counter snt_unacked without checking that it does not exceed the number of messages actually outstanding: tsk->snt_unacked -= msg_conn_ack(hdr); msg_conn_ack() is read straight from a received CONN_MANAGER/CONN_ACK message. If the ack count is larger than snt_unacked, the subtraction wraps to a near-maximum value, leaving tsk_conn_cong() permanently true and starving the connection of further transmits. Validate the ACK count at the start of the CONN_ACK block and drop the message if it acknowledges more messages than are outstanding. A peer (or, for a local connection, the connected peer socket) can otherwise wedge a TIPC connection's send side by sending an oversized connection ack.
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
10724cc7bb7832b482df049c20fd824d928c5eaa to < 3388145d258cf2c4c98278e3987296007d30672eaffected10724cc7bb7832b482df049c20fd824d928c5eaa to < 67e55b054bf8025658dc0e255057f2a6236416bdaffected10724cc7bb7832b482df049c20fd824d928c5eaa to < 96f91b8ae1a489b3eca137e7acf42cf985fb8939affected10724cc7bb7832b482df049c20fd824d928c5eaa to < 47ed873e4ceda34098bd46d8e96b4bb13cad3a04affected10724cc7bb7832b482df049c20fd824d928c5eaa to < b44bebdd32c9ff66ee2aebfc317ced44bedd9335affected10724cc7bb7832b482df049c20fd824d928c5eaa to < 3cfa3d8e0dc167850edeb5bf5a07757db83fd54eaffected10724cc7bb7832b482df049c20fd824d928c5eaa to < 1e2c956745777e6ffdee7f30da5935741c03ee1eaffected10724cc7bb7832b482df049c20fd824d928c5eaa to < ab3e10b44ba5411779aac7afd2477917dd77750faffected
Linux Linux
Default version status: affected
4.7affected0 to < 4.7unaffected5.10.261 to ≤ 5.10.*unaffected5.15.212 to ≤ 5.15.*unaffected6.1.178 to ≤ 6.1.*unaffected6.6.145 to ≤ 6.6.*unaffected6.12.97 to ≤ 6.12.*unaffected6.18.40 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/3388145d258cf2c4c98278e3987296007d30672e ↗
- https://git.kernel.org/stable/c/67e55b054bf8025658dc0e255057f2a6236416bd ↗
- https://git.kernel.org/stable/c/96f91b8ae1a489b3eca137e7acf42cf985fb8939 ↗
- https://git.kernel.org/stable/c/47ed873e4ceda34098bd46d8e96b4bb13cad3a04 ↗
- https://git.kernel.org/stable/c/b44bebdd32c9ff66ee2aebfc317ced44bedd9335 ↗
- https://git.kernel.org/stable/c/3cfa3d8e0dc167850edeb5bf5a07757db83fd54e ↗
- https://git.kernel.org/stable/c/1e2c956745777e6ffdee7f30da5935741c03ee1e ↗
- https://git.kernel.org/stable/c/ab3e10b44ba5411779aac7afd2477917dd77750f ↗