{"id":"CVE-2024-35830","state":"PUBLISHED","title":"media: tc358743: register v4l2 async device only after successful setup","description":"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.","publishedAt":"2024-05-17T13:41:19.675Z","updatedAt":"2026-10-15T00:41:00.750Z","severity":{"score":7.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/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":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"17c2650de14842c25c569cbb2126c421489a3a24","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"daf21394f9898fb9f0698c3e50de08132d2164e6","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"610f20e5cf35ca9c0992693cae0dd8643ce932e7","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"b8505a1aee8f1edc9d16d72ae09c93de086e2a1a","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"8ba8db9786b55047df5ad3db3e01dd886687a77d","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"edbb3226c985469a2f8eb69885055c9f5550f468","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"c915c46a25c3efb084c4f5e69a053d7f7a635496","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"4f1490a5d7a0472ee5d9f36547bc4ba46be755c7","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"87399f1ff92203d65f1febf5919429f4bb613a02","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/media/i2c/tc358743.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.3","versionType":"semver"},{"version":"4.19.311","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.273","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.214","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.153","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.83","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.23","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.7.11","status":"unaffected","lessThanOrEqual":"6.7.*","versionType":"semver"},{"version":"6.8.2","status":"unaffected","lessThanOrEqual":"6.8.*","versionType":"semver"},{"version":"6.9","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/media/i2c/tc358743.c"]}],"references":["https://git.kernel.org/stable/c/17c2650de14842c25c569cbb2126c421489a3a24","https://git.kernel.org/stable/c/daf21394f9898fb9f0698c3e50de08132d2164e6","https://git.kernel.org/stable/c/610f20e5cf35ca9c0992693cae0dd8643ce932e7","https://git.kernel.org/stable/c/b8505a1aee8f1edc9d16d72ae09c93de086e2a1a","https://git.kernel.org/stable/c/8ba8db9786b55047df5ad3db3e01dd886687a77d","https://git.kernel.org/stable/c/edbb3226c985469a2f8eb69885055c9f5550f468","https://git.kernel.org/stable/c/c915c46a25c3efb084c4f5e69a053d7f7a635496","https://git.kernel.org/stable/c/4f1490a5d7a0472ee5d9f36547bc4ba46be755c7","https://git.kernel.org/stable/c/87399f1ff92203d65f1febf5919429f4bb613a02","https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html","https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html","https://cert-portal.siemens.com/productcert/html/ssa-398330.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:07:30.303Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/35xxx/CVE-2024-35830.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2024-35830","state":"PUBLISHED","datePublished":"2024-05-17T13:41:19.675Z","dateUpdated":"2026-10-15T00:41:00.750Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2024-05-17T12:19:12.348Z"},"containers":{"cna":{"title":"media: tc358743: register v4l2 async device only after successful setup","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."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"17c2650de14842c25c569cbb2126c421489a3a24","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"daf21394f9898fb9f0698c3e50de08132d2164e6","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"610f20e5cf35ca9c0992693cae0dd8643ce932e7","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"b8505a1aee8f1edc9d16d72ae09c93de086e2a1a","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"8ba8db9786b55047df5ad3db3e01dd886687a77d","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"edbb3226c985469a2f8eb69885055c9f5550f468","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"c915c46a25c3efb084c4f5e69a053d7f7a635496","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"4f1490a5d7a0472ee5d9f36547bc4ba46be755c7","versionType":"git"},{"version":"4c5211a100399c3823563193dd881dcb3b7d24fc","status":"affected","lessThan":"87399f1ff92203d65f1febf5919429f4bb613a02","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/media/i2c/tc358743.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.3","versionType":"semver"},{"version":"4.19.311","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.273","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.214","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.153","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.83","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.23","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.7.11","status":"unaffected","lessThanOrEqual":"6.7.*","versionType":"semver"},{"version":"6.8.2","status":"unaffected","lessThanOrEqual":"6.8.*","versionType":"semver"},{"version":"6.9","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/media/i2c/tc358743.c"]}],"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"}],"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."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T11:30:11.254Z"},"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"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"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"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-02T03:21:48.478Z"}},{"title":"CISA ADP Vulnrichment","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"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-09-11T17:33:20.797Z"}},{"affected":[{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]},{"vendor":"Siemens","product":"SIPLUS S7-1500 CPU 1518-4 PN/DP MFP","defaultStatus":"unknown","versions":[{"version":"V3.1.0","status":"affected","lessThan":"V3.1.5","versionType":"custom"}]}],"references":[{"url":"https://cert-portal.siemens.com/productcert/html/ssa-398330.html"}],"providerMetadata":{"shortName":"siemens-SADP","orgId":"0b142b55-0307-4c5a-b3c9-f314f3fb7c5e","dateUpdated":"2026-10-15T00:41:00.750Z"},"x_adpType":"supplier"}]}}}