Linux: sctp: avoid livelock while updating retransmit path
What fixes it
- 3fe624c3843694ab096fdb198526ba0c659febbeLinuxCVE List
- 43410c1f2db53516e95ddd7e5b4b02f495b78121LinuxCVE List
- 83b1a7f9e718828ef364a7b004254ebb2d0035feLinuxCVE List
- 173610fff55022a5ad1579fbcc7faa97467b58b7LinuxCVE List
- 3.11LinuxCVE List
- 3.13LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
sctp: avoid livelock while updating retransmit path
sctp_assoc_update_retran_path() can loop forever when every remaining transport, including retran_path, is SCTP_UNCONFIRMED: the state check runs before the wraparound test, so the loop cannot observe that it has completed a full pass.
Fix this by considering a transport only when it is not UNCONFIRMED, then checking whether the walk has returned to retran_path. This makes the full-pass termination independent of the transport state while preserving the existing fallback selection semantics.
Also restore the NULL guard around the retran_path assignment. In the all-UNCONFIRMED case there is no eligible replacement transport, and installing NULL would leave later retransmit-path users and the debug print with a NULL path.
Text from CVE List
Affected versions 22
- Linuxaffected: 4c47af4d5eb2c2f78f886079a3920a7078a6f0a0 before 3fe624c3843694ab096fdb198526ba0c659febbeCVE List
- Linuxaffected: 4c47af4d5eb2c2f78f886079a3920a7078a6f0a0 before 43410c1f2db53516e95ddd7e5b4b02f495b78121CVE List
- Linuxaffected: 4c47af4d5eb2c2f78f886079a3920a7078a6f0a0 before d893a7cc1cb41dd510f338bb2bfd8f29b14eaf49CVE List
- Linuxaffected: 4c47af4d5eb2c2f78f886079a3920a7078a6f0a0 before 83b1a7f9e718828ef364a7b004254ebb2d0035feCVE List
- Linuxaffected: 4c47af4d5eb2c2f78f886079a3920a7078a6f0a0 before 173610fff55022a5ad1579fbcc7faa97467b58b7CVE List
- Linuxaffected: 4c47af4d5eb2c2f78f886079a3920a7078a6f0a0 before c9338057df1025f578fe7d0ff08bada87b8b838dCVE List
- Linuxaffected: 4c47af4d5eb2c2f78f886079a3920a7078a6f0a0 before ddc34cc0834c873871e88b055ee6a260676efe97CVE List
- Linuxaffected: 4c47af4d5eb2c2f78f886079a3920a7078a6f0a0 before d2c31b837406395e576afeb25958c98e9938f3f6CVE List
- Linuxaffected: 8ceaec02b17397d12719a282945abc95f8149d9fCVE List
- Linuxaffected: d2c2bdcdd8c5ce3d2a68aa3353ed1f340c3e500eCVE List
- Linuxaffected: 3.10.106 before 3.11CVE List
- Linuxaffected: 3.12.71 before 3.13CVE List
- Linuxaffected: 3.14CVE List
- Linuxunaffected: all versions before 3.14CVE List
- Linuxunaffected: 5.10.271 through 5.10.*CVE List
- Linuxunaffected: 5.15.222 through 5.15.*CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.55 through 6.18.*CVE List
- Linuxunaffected: 7.2.9 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 8
- git.kernel.org/stable/c/3fe624c3843694ab096fdb198526ba0c659febbeReferencevia CVE List
- git.kernel.org/stable/c/43410c1f2db53516e95ddd7e5b4b02f495b78121Referencevia CVE List
- git.kernel.org/stable/c/d893a7cc1cb41dd510f338bb2bfd8f29b14eaf49Referencevia CVE List
- git.kernel.org/stable/c/83b1a7f9e718828ef364a7b004254ebb2d0035feReferencevia CVE List
- git.kernel.org/stable/c/173610fff55022a5ad1579fbcc7faa97467b58b7Referencevia CVE List
- git.kernel.org/stable/c/c9338057df1025f578fe7d0ff08bada87b8b838dReferencevia CVE List
- git.kernel.org/stable/c/ddc34cc0834c873871e88b055ee6a260676efe97Referencevia CVE List
- git.kernel.org/stable/c/d2c31b837406395e576afeb25958c98e9938f3f6Referencevia CVE List