Description
In the Linux kernel, the following vulnerability has been resolved: NFC: digital: Bounds check NFC-A cascade depth in SDD response handler The NFC-A anti-collision cascade in digital_in_recv_sdd_res() appends 3 or 4 bytes to target->nfcid1 on each round, but the number of cascade rounds is controlled entirely by the peer device. The peer sets the cascade tag in the SDD_RES (deciding 3 vs 4 bytes) and the cascade-incomplete bit in the SEL_RES (deciding whether another round follows). ISO 14443-3 limits NFC-A to three cascade levels and target->nfcid1 is sized accordingly (NFC_NFCID1_MAXSIZE = 10), but nothing in the driver actually enforces this. This means a malicious peer can keep the cascade running, writing past the heap-allocated nfc_target with each round. Fix this by rejecting the response when the accumulated UID would exceed the buffer. Commit e329e71013c9 ("NFC: nci: Bounds check struct nfc_target arrays") fixed similar missing checks against the same field on the NCI path.
Product status
2c66daecc4092e6049673c281b2e6f0d5e59a94c (git) before 2819f34e08bdffb6f06a51c67948ec5737fb166a
2c66daecc4092e6049673c281b2e6f0d5e59a94c (git) before 1bec5698b55aa2be5c3b983dba657c01d0fd3dbc
2c66daecc4092e6049673c281b2e6f0d5e59a94c (git) before 5a59bf70c38ee1eb4be03bab830bbc3a6f0bd1f1
2c66daecc4092e6049673c281b2e6f0d5e59a94c (git) before 8d9d9bf3565271ca7ab9c716a94e87296177e7ba
2c66daecc4092e6049673c281b2e6f0d5e59a94c (git) before cc024a3de265ef6c58957f4990eccb9f806208cb
2c66daecc4092e6049673c281b2e6f0d5e59a94c (git) before 46ce8be2ced389bccd84bcc04a12cf2f4d0c22d1
3.13
Any version before 3.13
6.6.136 (semver)
6.12.83 (semver)
6.18.24 (semver)
6.19.14 (semver)
7.0.1 (semver)
7.1-rc1 (original_commit_for_fix)
References
git.kernel.org/...c/2819f34e08bdffb6f06a51c67948ec5737fb166a
git.kernel.org/...c/1bec5698b55aa2be5c3b983dba657c01d0fd3dbc
git.kernel.org/...c/5a59bf70c38ee1eb4be03bab830bbc3a6f0bd1f1
git.kernel.org/...c/8d9d9bf3565271ca7ab9c716a94e87296177e7ba
git.kernel.org/...c/cc024a3de265ef6c58957f4990eccb9f806208cb
git.kernel.org/...c/46ce8be2ced389bccd84bcc04a12cf2f4d0c22d1