Description
In the Linux kernel, the following vulnerability has been resolved: RDMA/siw: Bound fragmented header copies by the remaining length siw_get_hdr() can receive an extended DDP/RDMAP header across more than one TCP callback. The first callback may receive most of the header, while the next one still limits the copy to hdrlen - MIN_DDP_HDR instead of the number of missing bytes. This makes the destination move past the end of the header and overwrite the receive state, including fpdu_part_rcvd. A later callback can then use a negative fpdu_part_rcvd value as a copy offset, which creates an OOB write. Use the number of header bytes already received when calculating the next copy length.
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
e3917c85f41ef1df64e27dc0e46ab0d803c5e73e to < 2c6fbcf4bfac0b2b186acc8d91154c0fa24468a7affected308cd50f174c95a507527037f4de1a0396aa4325 to < af9f5b474a260ad23ffb9793d716a5e3bbce3b48affected754209850df8367c954ac1de7671c7430b1f342c to < 262dcd809723723ed8a4e05437ec7e9c21a8f17eaffected754209850df8367c954ac1de7671c7430b1f342c to < eb4d7a946970469b3ab0c762432bf161d5b0836caffected754209850df8367c954ac1de7671c7430b1f342c to < 8628f8ebf41669302513fb3f0bf0eba38b226742affected754209850df8367c954ac1de7671c7430b1f342c to < b72dcfb9bf1f0f0147cda03dc59e4002a315067faffected754209850df8367c954ac1de7671c7430b1f342c to < e6bdfdf3bcb02d0d626a45e8c98b7e63d2fddf9daffected754209850df8367c954ac1de7671c7430b1f342c to < 9ff797e516dbc1ecb73701ec4c24055712d44411affectede09caa38e10bcf027100cc22b0e3cc745a39ef0aaffected0c14f795a9eab9344230f9933798b8ee496f497daffected7fada7c6962219b6fc4ff4e62e46a936af110dd9affected5.10.150 to < 5.10.271affected5.15.75 to < 5.15.222affected5.4.220 to < 5.5affected5.19.17 to < 5.20affected6.0.3 to < 6.1affected
Linux Linux
Default version status: affected
6.1affected0 to < 6.1unaffected5.10.271 to ≤ 5.10.*unaffected5.15.222 to ≤ 5.15.*unaffected6.1.189 to ≤ 6.1.*unaffected6.6.158 to ≤ 6.6.*unaffected6.12.112 to ≤ 6.12.*unaffected6.18.54 to ≤ 6.18.*unaffected7.2.8 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/2c6fbcf4bfac0b2b186acc8d91154c0fa24468a7 ↗
- https://git.kernel.org/stable/c/af9f5b474a260ad23ffb9793d716a5e3bbce3b48 ↗
- https://git.kernel.org/stable/c/262dcd809723723ed8a4e05437ec7e9c21a8f17e ↗
- https://git.kernel.org/stable/c/eb4d7a946970469b3ab0c762432bf161d5b0836c ↗
- https://git.kernel.org/stable/c/8628f8ebf41669302513fb3f0bf0eba38b226742 ↗
- https://git.kernel.org/stable/c/b72dcfb9bf1f0f0147cda03dc59e4002a315067f ↗
- https://git.kernel.org/stable/c/e6bdfdf3bcb02d0d626a45e8c98b7e63d2fddf9d ↗
- https://git.kernel.org/stable/c/9ff797e516dbc1ecb73701ec4c24055712d44411 ↗