Description
In the Linux kernel, the following vulnerability has been resolved: net: dsa: mv88e6xxx: bound the policy rule dump by the caller's buffer size mv88e6xxx_get_rxnfc() uses rxnfc->rule_cnt as the write index while dumping the policy IDR, clobbering the input value before it has been looked at. That input is the number of entries the caller had room for. ETHTOOL_GRXCLSRLALL requires no CAP_NET_ADMIN and the ioctl sizes the buffer from the rule_cnt userspace passes in, so once an admin has installed policy rules any user can ask for fewer slots than there are rules and run off the end of the allocation. A rule_cnt of 0 leaves the buffer pointer NULL and the walk dereferences it. Count into a local so the caller's limit survives the walk, and stop with -EMSGSIZE once it is reached.
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
da7dc87553046a43be1620a783ce3d9f6583d322 to < 7e4bfc5f0b66feb22cba821303fc25ca22cd0887affectedda7dc87553046a43be1620a783ce3d9f6583d322 to < 01124cd2cf4b71755b1130ac82d78dcfbd5d69e3affectedda7dc87553046a43be1620a783ce3d9f6583d322 to < 609c4378f212cf580aae02250f1146caf63d873faffectedda7dc87553046a43be1620a783ce3d9f6583d322 to < c5b5c52b6524c9fb50def2260baac745c095ec3aaffectedda7dc87553046a43be1620a783ce3d9f6583d322 to < 44cd4674d9aa5bdf793b8a8b481c9e8536ed6070affectedda7dc87553046a43be1620a783ce3d9f6583d322 to < 7a683c2b062810bca203e41866389daf387c235baffectedda7dc87553046a43be1620a783ce3d9f6583d322 to < cda5ac8fe8ac8e80b1703ebb8c4250726fc19739affectedda7dc87553046a43be1620a783ce3d9f6583d322 to < b1fffc273112e7284c5b705e186b43b5770cd3d5affected
Linux Linux
Default version status: affected
5.4affected0 to < 5.4unaffected5.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.111 to ≤ 6.12.*unaffected6.18.53 to ≤ 6.18.*unaffected7.2.7 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/7e4bfc5f0b66feb22cba821303fc25ca22cd0887 ↗
- https://git.kernel.org/stable/c/01124cd2cf4b71755b1130ac82d78dcfbd5d69e3 ↗
- https://git.kernel.org/stable/c/609c4378f212cf580aae02250f1146caf63d873f ↗
- https://git.kernel.org/stable/c/c5b5c52b6524c9fb50def2260baac745c095ec3a ↗
- https://git.kernel.org/stable/c/44cd4674d9aa5bdf793b8a8b481c9e8536ed6070 ↗
- https://git.kernel.org/stable/c/7a683c2b062810bca203e41866389daf387c235b ↗
- https://git.kernel.org/stable/c/cda5ac8fe8ac8e80b1703ebb8c4250726fc19739 ↗
- https://git.kernel.org/stable/c/b1fffc273112e7284c5b705e186b43b5770cd3d5 ↗