nfc: pn533: fix OOB read in pn533_acr122_is_rx_frame_valid()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: nfc: pn533: fix OOB read in pn533_acr122_is_rx_frame_valid() frame->ccid.datalen is read directly from the USB response frame and used, unchecked, as an index into frame->data[]. A malicious or malfunctioning device can set this field to an arbitrary value, causing the driver to read far outside the received buffer. Bound ccid.datalen against the maximum possible ACR122 frame size before using it. This replaces the existing datalen == 0 check, since datalen < 2 already covers that case and additionally rejects datalen == 1, which would still underflow the "datalen - 2" offset used below.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 9815c7cf22daceabfb919ddcd6f2c80e049c1fbc · fixed in 8db3b1e012a8b25078dfa1efabe3d0cd2916dcba; From 9815c7cf22daceabfb919ddcd6f2c80e049c1fbc · fixed in 74b3fbc60907ee97e3af3249091f57351b53a6d6; From 9815c7cf22daceabfb919ddcd6f2c80e049c1fbc · fixed in 8a0f1bb790d964893db7fc59febda9a534db07b3; From 9815c7cf22daceabfb919ddcd6f2c80e049c1fbc · fixed in ea82b7576793219fa10a8b545f8338998b2a9ce2; From 9815c7cf22daceabfb919ddcd6f2c80e049c1fbc · fixed in 72b8b2126e854d6756a1aa4bdc66d7457b832294; From 9815c7cf22daceabfb919ddcd6f2c80e049c1fbc · fixed in e72cbedc4596e808d22dd2b9fff666ece76f8dd6; From 9815c7cf22daceabfb919ddcd6f2c80e049c1fbc · fixed in 2450a388367231fb7dd798538f393af227c00c4d; From 9815c7cf22daceabfb919ddcd6f2c80e049c1fbc · fixed in b61732f47316d45f27706db7812950145d3327b5
- Linux Linux
4.7
- KernelLinux
From 4.7.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.55; From 6.19.0 · fixed in 7.2.9
References 8
git.kernel.org
- stable/c/8db3b1e012a8b25078dfa1efabe3d0cd2916dcba
- stable/c/74b3fbc60907ee97e3af3249091f57351b53a6d6
- stable/c/8a0f1bb790d964893db7fc59febda9a534db07b3
- stable/c/ea82b7576793219fa10a8b545f8338998b2a9ce2
- stable/c/72b8b2126e854d6756a1aa4bdc66d7457b832294
- stable/c/e72cbedc4596e808d22dd2b9fff666ece76f8dd6
- stable/c/2450a388367231fb7dd798538f393af227c00c4d
- stable/c/b61732f47316d45f27706db7812950145d3327b5