{"id":"CVE-2021-47240","state":"PUBLISHED","title":"net: qrtr: fix OOB Read in qrtr_endpoint_post","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: qrtr: fix OOB Read in qrtr_endpoint_post\n\nSyzbot reported slab-out-of-bounds Read in\nqrtr_endpoint_post. The problem was in wrong\n_size_ type:\n\n\tif (len != ALIGN(size, 4) + hdrlen)\n\t\tgoto err;\n\nIf size from qrtr_hdr is 4294967293 (0xfffffffd), the result of\nALIGN(size, 4) will be 0. In case of len == hdrlen and size == 4294967293\nin header this check won't fail and\n\n\tskb_put_data(skb, data + hdrlen, size);\n\nwill read out of bound from data, which is hdrlen allocated block.","publishedAt":"2024-05-21T14:19:40.363Z","updatedAt":"2026-08-05T08:46:52.072Z","severity":{"score":8.4,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"194ccc88297ae78d0803adad83c6dcc369787c9e","status":"affected","lessThan":"f8111c0d7ed42ede41a3d0d393b104de0730a8a6","versionType":"git"},{"version":"194ccc88297ae78d0803adad83c6dcc369787c9e","status":"affected","lessThan":"26b8d10703a9be45d6097946b2b4011f7dd2c56f","versionType":"git"},{"version":"194ccc88297ae78d0803adad83c6dcc369787c9e","status":"affected","lessThan":"960b08dd36de1e341e3eb43d1c547513e338f4f8","versionType":"git"},{"version":"194ccc88297ae78d0803adad83c6dcc369787c9e","status":"affected","lessThan":"19892ab9c9d838e2e5a7744d36e4bb8b7c3292fe","versionType":"git"},{"version":"194ccc88297ae78d0803adad83c6dcc369787c9e","status":"affected","lessThan":"ad9d24c9429e2159d1e279dc3a83191ccb4daf1d","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/qrtr/qrtr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.15","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.15","versionType":"semver"},{"version":"4.19.196","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.128","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.46","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.12.13","status":"unaffected","lessThanOrEqual":"5.12.*","versionType":"semver"},{"version":"5.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/qrtr/qrtr.c"]}],"references":["https://git.kernel.org/stable/c/f8111c0d7ed42ede41a3d0d393b104de0730a8a6","https://git.kernel.org/stable/c/26b8d10703a9be45d6097946b2b4011f7dd2c56f","https://git.kernel.org/stable/c/960b08dd36de1e341e3eb43d1c547513e338f4f8","https://git.kernel.org/stable/c/19892ab9c9d838e2e5a7744d36e4bb8b7c3292fe","https://git.kernel.org/stable/c/ad9d24c9429e2159d1e279dc3a83191ccb4daf1d"],"weaknesses":[],"ingestedAt":"2026-10-29T19:49:19.404Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2021/47xxx/CVE-2021-47240.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2021-47240","state":"PUBLISHED","datePublished":"2024-05-21T14:19:40.363Z","dateUpdated":"2026-08-05T08:46:52.072Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-04-10T18:59:19.532Z"},"containers":{"cna":{"title":"net: qrtr: fix OOB Read in qrtr_endpoint_post","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: qrtr: fix OOB Read in qrtr_endpoint_post\n\nSyzbot reported slab-out-of-bounds Read in\nqrtr_endpoint_post. The problem was in wrong\n_size_ type:\n\n\tif (len != ALIGN(size, 4) + hdrlen)\n\t\tgoto err;\n\nIf size from qrtr_hdr is 4294967293 (0xfffffffd), the result of\nALIGN(size, 4) will be 0. In case of len == hdrlen and size == 4294967293\nin header this check won't fail and\n\n\tskb_put_data(skb, data + hdrlen, size);\n\nwill read out of bound from data, which is hdrlen allocated block."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"194ccc88297ae78d0803adad83c6dcc369787c9e","status":"affected","lessThan":"f8111c0d7ed42ede41a3d0d393b104de0730a8a6","versionType":"git"},{"version":"194ccc88297ae78d0803adad83c6dcc369787c9e","status":"affected","lessThan":"26b8d10703a9be45d6097946b2b4011f7dd2c56f","versionType":"git"},{"version":"194ccc88297ae78d0803adad83c6dcc369787c9e","status":"affected","lessThan":"960b08dd36de1e341e3eb43d1c547513e338f4f8","versionType":"git"},{"version":"194ccc88297ae78d0803adad83c6dcc369787c9e","status":"affected","lessThan":"19892ab9c9d838e2e5a7744d36e4bb8b7c3292fe","versionType":"git"},{"version":"194ccc88297ae78d0803adad83c6dcc369787c9e","status":"affected","lessThan":"ad9d24c9429e2159d1e279dc3a83191ccb4daf1d","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/qrtr/qrtr.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.15","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.15","versionType":"semver"},{"version":"4.19.196","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.128","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.46","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.12.13","status":"unaffected","lessThanOrEqual":"5.12.*","versionType":"semver"},{"version":"5.13","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/qrtr/qrtr.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/f8111c0d7ed42ede41a3d0d393b104de0730a8a6"},{"url":"https://git.kernel.org/stable/c/26b8d10703a9be45d6097946b2b4011f7dd2c56f"},{"url":"https://git.kernel.org/stable/c/960b08dd36de1e341e3eb43d1c547513e338f4f8"},{"url":"https://git.kernel.org/stable/c/19892ab9c9d838e2e5a7744d36e4bb8b7c3292fe"},{"url":"https://git.kernel.org/stable/c/ad9d24c9429e2159d1e279dc3a83191ccb4daf1d"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":8.4,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - qrtr_endpoint_post is reached from local endpoint drivers (MHI/SMD to an on-board modem or WiFi peer over PCIe, or a write to /dev/qrtr-tun); mainline QRTR has no IP transport, so a remote network packet cannot hit this path.\nAC:L - A crafted QRTR header with size near UINT_MAX (e.g. 0xfffffffd) deterministically makes ALIGN(size,4) wrap to 0 so the length check passes; the attacker fully controls the packet bytes and needs no race or unpredictable layout.\nPR:N - On the MHI/SMD path the vulnerable parser runs on unauthenticated device-to-host IPCR completions with no host capability or credential check, so a compromised or malicious peripheral peer triggers it without any local account (worst case over the also-reachable PR:L qrtr-tun path).\nUI:N - The attacker (or malicious MHI peer) delivers the malformed packet itself; no separate victim action such as mounting a filesystem or opening a file is required.\nS:U - The resulting kernel heap read/write and oops stay inside the host kernel's QRTR authority and do not cross a VM, IOMMU, or sandbox boundary.\nC:H - skb_put_data memcpy performs a multi-gigabyte out-of-bounds read from the hdrlen-sized source buffer into/past the skb (KASAN: Read of size ~4294967294), which per guidance is an unbounded OOB read treated as High confidentiality impact.\nI:H - The same memcpy writes past the hdrlen-sized skb into adjacent kernel memory because sk_buff_data_t wrap bypasses skb_put's overflow check (confirmed by the later 32-bit follow-up describing a write past the skb), yielding a heap overflow write primitive.\nA:H - The huge OOB access faults/oopses the kernel (and is a hard KASAN failure), producing full availability loss on affected systems."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T08:46:52.072Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.15","versionEndExcluding":"4.19.196"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.15","versionEndExcluding":"5.4.128"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.15","versionEndExcluding":"5.10.46"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.15","versionEndExcluding":"5.12.13"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.15","versionEndExcluding":"5.13"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2021-47240","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-05-23T21:23:18.343399Z"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-06-04T17:14:27.293Z"}},{"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/f8111c0d7ed42ede41a3d0d393b104de0730a8a6","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/26b8d10703a9be45d6097946b2b4011f7dd2c56f","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/960b08dd36de1e341e3eb43d1c547513e338f4f8","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/19892ab9c9d838e2e5a7744d36e4bb8b7c3292fe","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/ad9d24c9429e2159d1e279dc3a83191ccb4daf1d","tags":["x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-04T05:32:08.052Z"}}]}}}