{"dataType":"CVE_RECORD","cveMetadata":{"cveId":"CVE-2024-35830","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2024-05-17T12:19:12.348Z","datePublished":"2024-05-17T13:41:19.675Z","dateUpdated":"2026-08-05T11:30:11.254Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-08-05T11:30:11.254Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nmedia: tc358743: register v4l2 async device only after successful setup\n\nEnsure the device has been setup correctly before registering the v4l2\nasync device, thus allowing userspace to access."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The vulnerable code is reached through `ioctl()` on the `/dev/v4l-subdev*` character device node created by `v4l2_device_register_subdev_nodes()`, so the attacker needs local system access. No network, RF, or physical-bus path reaches these subdev ops.\nAC:L - The attacker controls their side of the race entirely and can spin on `open()`/`ioctl()`; the node becomes visible the moment `v4l2_async_register_subdev()` returns while probe still has tens of milliseconds of I²C register programming, CEC adapter allocation, and IRQ setup left to run, making the window large and reliably winnable.\nPR:L - Only an open file descriptor on the V4L2 subdev node is needed — `VIDIOC_SUBDEV_S_FMT`, `S_EDID`, and `S_DV_TIMINGS` have no capability check (only `VIDIOC_DBG_*` gate on `CAP_SYS_ADMIN`), and these nodes are routinely accessible to unprivileged users via the `video` group, logind uaccess ACLs, or the Android camera/media UID.\nUI:N - No victim action is required; the attacker acts alone against a driver probe that occurs as a normal system event at boot or module load.\nS:U - The corrupted objects — the `tc358743_state` mutex, the delayed work/timer, and the freed subdev — are all ordinary kernel memory in the same security authority; no hypervisor, IOMMU, or sandbox boundary is crossed.\nC:H - Use of the uninitialized `confctl_mutex` and `delayed_work`/`timer_list`, plus the dangling `v4l2_subdev` left registered on the global `subdev_list` after a devm-freed probe failure, give memory-corruption and use-after-free primitives over kernel slab memory that can be groomed into an arbitrary kernel read.\nI:H - `INIT_DELAYED_WORK()` re-initializing a timer already linked into the timer base's hlist, `mutex_init()` racing a live waiter, and dereferencing `sd->ops` from freed memory all yield controlled writes and control-flow hijack potential; on affected trees lacking the `WARN_ON_ONCE(!fn)` guard, `expire_timers()` calls a NULL function pointer outright.\nA:H - The immediate and easily reproduced outcome is a kernel oops or panic — NULL-pointer write via `list_add_tail()` on the zeroed `wait_list`, `WARN_ON(!work->func)` in `__flush_work()` (panic under `panic_on_warn`), timer-base list corruption, or a use-after-free crash."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/media/i2c/tc358743.c"],"versions":[{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","lessThan":"17c2650de14842c25c569cbb2126c421489a3a24","status":"affected","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","lessThan":"daf21394f9898fb9f0698c3e50de08132d2164e6","status":"affected","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","lessThan":"610f20e5cf35ca9c0992693cae0dd8643ce932e7","status":"affected","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","lessThan":"b8505a1aee8f1edc9d16d72ae09c93de086e2a1a","status":"affected","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","lessThan":"8ba8db9786b55047df5ad3db3e01dd886687a77d","status":"affected","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","lessThan":"edbb3226c985469a2f8eb69885055c9f5550f468","status":"affected","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","lessThan":"c915c46a25c3efb084c4f5e69a053d7f7a635496","status":"affected","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","lessThan":"4f1490a5d7a0472ee5d9f36547bc4ba46be755c7","status":"affected","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","lessThan":"87399f1ff92203d65f1febf5919429f4bb613a02","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/media/i2c/tc358743.c"],"versions":[{"version":"4.3","status":"affected"},{"version":"0","lessThan":"4.3","status":"unaffected","versionType":"semver"},{"version":"4.19.311","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4.273","lessThanOrEqual":"5.4.*","status":"unaffected","versionType":"semver"},{"version":"5.10.214","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.153","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.83","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.23","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.7.11","lessThanOrEqual":"6.7.*","status":"unaffected","versionType":"semver"},{"version":"6.8.2","lessThanOrEqual":"6.8.*","status":"unaffected","versionType":"semver"},{"version":"6.9","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"4.19.311"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.4.273"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.10.214"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.15.153"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.1.83"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.6.23"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.7.11"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.8.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.9"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/17c2650de14842c25c569cbb2126c421489a3a24"},{"url":"https://git.kernel.org/stable/c/daf21394f9898fb9f0698c3e50de08132d2164e6"},{"url":"https://git.kernel.org/stable/c/610f20e5cf35ca9c0992693cae0dd8643ce932e7"},{"url":"https://git.kernel.org/stable/c/b8505a1aee8f1edc9d16d72ae09c93de086e2a1a"},{"url":"https://git.kernel.org/stable/c/8ba8db9786b55047df5ad3db3e01dd886687a77d"},{"url":"https://git.kernel.org/stable/c/edbb3226c985469a2f8eb69885055c9f5550f468"},{"url":"https://git.kernel.org/stable/c/c915c46a25c3efb084c4f5e69a053d7f7a635496"},{"url":"https://git.kernel.org/stable/c/4f1490a5d7a0472ee5d9f36547bc4ba46be755c7"},{"url":"https://git.kernel.org/stable/c/87399f1ff92203d65f1febf5919429f4bb613a02"}],"title":"media: tc358743: register v4l2 async device only after successful setup","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"providerMetadata":{"orgId":"af854a3a-2127-422b-91ae-364da2661108","shortName":"CVE","dateUpdated":"2024-08-02T03:21:48.478Z"},"title":"CVE Program Container","references":[{"url":"https://git.kernel.org/stable/c/17c2650de14842c25c569cbb2126c421489a3a24","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/daf21394f9898fb9f0698c3e50de08132d2164e6","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/610f20e5cf35ca9c0992693cae0dd8643ce932e7","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/b8505a1aee8f1edc9d16d72ae09c93de086e2a1a","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/8ba8db9786b55047df5ad3db3e01dd886687a77d","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/edbb3226c985469a2f8eb69885055c9f5550f468","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/c915c46a25c3efb084c4f5e69a053d7f7a635496","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/4f1490a5d7a0472ee5d9f36547bc4ba46be755c7","tags":["x_transferred"]},{"url":"https://git.kernel.org/stable/c/87399f1ff92203d65f1febf5919429f4bb613a02","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html","tags":["x_transferred"]},{"url":"https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html","tags":["x_transferred"]}]},{"metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2024-35830","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2024-09-10T15:42:22.059592Z"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2024-09-11T17:33:20.797Z"}}]},"dataVersion":"5.2"}