Linux: nfc: st21nfca: validate received frame size
What fixes it
- 8934d2889ae16a7c77520e002398d0689c1ecea5LinuxCVE List
- 91be5161f37b0a2795ad6806d69be5fa74522e5cLinuxCVE List
- 57919d0662d8856211b794140172e51ca389f23dLinuxCVE List
- 7b996cc06dda54c02a5aa607bda01109f0ac51e6LinuxCVE 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:
nfc: st21nfca: validate received frame size
st21nfca_hci_i2c_repack() trims a received frame at its EOF marker before removing byte stuffing. It then assumes the truncated frame contains the LLC header and two CRC bytes, and it unconditionally reads the byte after an escape marker.
A malformed frame can place EOF immediately after the start marker or can end its data portion with an escape marker. The former leaves too few bytes for check_crc(), while the latter makes the unstuffing loop read past the current skb length.
Require the minimum framing bytes both before and after unstuffing. Use separate input and output cursors while removing byte stuffing, and reject an escape marker without its encoded byte. This keeps malformed frames within the received frame boundary before CRC processing.
Text from CVE List
Affected versions 18
- Linuxaffected: 3096e25a3e40b73afd59e46f3bf8d84f919992a1 before 8934d2889ae16a7c77520e002398d0689c1ecea5CVE List
- Linuxaffected: 3096e25a3e40b73afd59e46f3bf8d84f919992a1 before d0596ee6c4b928a5c288790522a7495ee867da72CVE List
- Linuxaffected: 3096e25a3e40b73afd59e46f3bf8d84f919992a1 before f526c218a149a30f110ce434ff17e033042404b8CVE List
- Linuxaffected: 3096e25a3e40b73afd59e46f3bf8d84f919992a1 before d4008c3499dba7829bfe002edd99a8bff8ae3a7cCVE List
- Linuxaffected: 3096e25a3e40b73afd59e46f3bf8d84f919992a1 before 91be5161f37b0a2795ad6806d69be5fa74522e5cCVE List
- Linuxaffected: 3096e25a3e40b73afd59e46f3bf8d84f919992a1 before 57919d0662d8856211b794140172e51ca389f23dCVE List
- Linuxaffected: 3096e25a3e40b73afd59e46f3bf8d84f919992a1 before 7b996cc06dda54c02a5aa607bda01109f0ac51e6CVE List
- Linuxaffected: 3096e25a3e40b73afd59e46f3bf8d84f919992a1 before a653c01ce447f10c36b901646888c0330363af4fCVE List
- Linuxaffected: 3.16CVE List
- Linuxunaffected: all versions before 3.16CVE 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/8934d2889ae16a7c77520e002398d0689c1ecea5Referencevia CVE List
- git.kernel.org/stable/c/d0596ee6c4b928a5c288790522a7495ee867da72Referencevia CVE List
- git.kernel.org/stable/c/f526c218a149a30f110ce434ff17e033042404b8Referencevia CVE List
- git.kernel.org/stable/c/d4008c3499dba7829bfe002edd99a8bff8ae3a7cReferencevia CVE List
- git.kernel.org/stable/c/91be5161f37b0a2795ad6806d69be5fa74522e5cReferencevia CVE List
- git.kernel.org/stable/c/57919d0662d8856211b794140172e51ca389f23dReferencevia CVE List
- git.kernel.org/stable/c/7b996cc06dda54c02a5aa607bda01109f0ac51e6Referencevia CVE List
- git.kernel.org/stable/c/a653c01ce447f10c36b901646888c0330363af4fReferencevia CVE List