Linux: net: dsa: bcm_sf2: bound the CFP rule dump by the caller's buffer size
What fixes it
- 8e41ce02589c92356bfd8ef62f6ceff840546e1aLinuxCVE 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:
net: dsa: bcm_sf2: bound the CFP rule dump by the caller's buffer size
bcm_sf2_cfp_rule_get_all() walks the whole cfp.unique bitmap into rule_locs[] without consulting nfc->rule_cnt, which is how many 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 CFP 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.
Text from CVE List
Affected versions 18
- Linuxaffected: 7318166cacad158b46240f66250d7cc5a481653b before ca49c526291d7cd3a5cb49b0edd7f50a5ae7176eCVE List
- Linuxaffected: 7318166cacad158b46240f66250d7cc5a481653b before 8e41ce02589c92356bfd8ef62f6ceff840546e1aCVE List
- Linuxaffected: 7318166cacad158b46240f66250d7cc5a481653b before f2cf4ef2d94fc15fd2e21c131fc1ab3f76125bf4CVE List
- Linuxaffected: 7318166cacad158b46240f66250d7cc5a481653b before f5e93162b3dd195bfda815e8f7a39aaf1d45437bCVE List
- Linuxaffected: 7318166cacad158b46240f66250d7cc5a481653b before f1a2869b3629c0e8394b77b38cb9f19a018c653cCVE List
- Linuxaffected: 7318166cacad158b46240f66250d7cc5a481653b before fd1a78c16b1f6978c09cf048e15f349732e4c707CVE List
- Linuxaffected: 7318166cacad158b46240f66250d7cc5a481653b before b231b6d8516d3fe0d4bba549908e08d26a4531a5CVE List
- Linuxaffected: 7318166cacad158b46240f66250d7cc5a481653b before cdb719f4b8596d9ccee2d56d204c2c4dce982f46CVE List
- Linuxaffected: 4.11CVE List
- Linuxunaffected: all versions before 4.11CVE 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.111 through 6.12.*CVE List
- Linuxunaffected: 6.18.53 through 6.18.*CVE List
- Linuxunaffected: 7.2.7 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 8
- git.kernel.org/stable/c/ca49c526291d7cd3a5cb49b0edd7f50a5ae7176eReferencevia CVE List
- git.kernel.org/stable/c/8e41ce02589c92356bfd8ef62f6ceff840546e1aReferencevia CVE List
- git.kernel.org/stable/c/f2cf4ef2d94fc15fd2e21c131fc1ab3f76125bf4Referencevia CVE List
- git.kernel.org/stable/c/f5e93162b3dd195bfda815e8f7a39aaf1d45437bReferencevia CVE List
- git.kernel.org/stable/c/f1a2869b3629c0e8394b77b38cb9f19a018c653cReferencevia CVE List
- git.kernel.org/stable/c/fd1a78c16b1f6978c09cf048e15f349732e4c707Referencevia CVE List
- git.kernel.org/stable/c/b231b6d8516d3fe0d4bba549908e08d26a4531a5Referencevia CVE List
- git.kernel.org/stable/c/cdb719f4b8596d9ccee2d56d204c2c4dce982f46Referencevia CVE List