{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-17523","assignerOrgId":"53f830b8-0a3f-465b-8143-3b8a9948e749","state":"PUBLISHED","assignerShortName":"redhat","dateReserved":"2026-07-27T08:19:11.242Z","datePublished":"2026-07-27T08:58:58.143Z","dateUpdated":"2026-09-10T13:31:17.266Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-09-10T13:31:17.266Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ncan: bcm: switch timer to HRTIMER_MODE_SOFT and remove hrtimer_tasklet\n\nThis patch switches the timer to HRTIMER_MODE_SOFT, which executed the\ntimer callback in softirq context and removes the hrtimer_tasklet."}],"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 UAF is in bcm_remove_op() hrtimer/tasklet teardown, reached only via local PF_CAN/CAN_BCM syscalls (socket/connect/sendmsg TX_SETUP or RX_SETUP with STARTTIMER, then close or TX_DELETE/RX_DELETE). Remote IP services or CAN bus frames alone cannot close the socket or delete the op.\nAC:L - The attacker controls both sides of the race: they arm cyclic TX/RX hrtimers with attacker-chosen microsecond intervals, then delete the op or close the socket, hitting the TOCTOU between tasklet-state checks and hrtimer_active() in bcm_remove_op(). The window is retryable until the scheduled tasklet runs on the freed object.\nPR:L - can_create(), bcm_connect(), and bcm_sendmsg() have no capability checks. RX_SETUP with ifindex 0 starts timeout timers without a CAN device, so any unprivileged local user (including via user namespaces / vcan) can create BCM ops and trigger teardown.\nUI:N - Exploitation requires only the attacker opening a BCM socket, installing timer-armed TX_SETUP/RX_SETUP ops, and closing or deleting them; no victim action such as mounting a filesystem or opening a file is needed.\nS:U - The use-after-free corrupts kernel heap state in the same kernel security domain, enabling local privilege escalation or crash; it does not by itself cross a VM, guest-to-host, or IOMMU boundary.\nC:H - bcm_op is a kmalloc object that embeds tasklet_struct; after the hrtimer hardirq callback schedules a tasklet that bcm_remove_op() misses, the tasklet runs on freed memory. Heap reuse of tsklet.func/data and UAF reads in bcm_send_to_user()/bcm_can_tx() enable arbitrary kernel disclosure.\nI:H - The same UAF lets a sprayed tasklet_struct hijack tsklet.func for arbitrary kernel execution, and bcm_tx_timeout_tsklet()/bcm_can_tx() write through freed op fields (frames, sock, timers), providing arbitrary write and control-flow hijack primitives.\nA:H - A scheduled tasklet running after kfree(op) dereferences the freed bcm_op (and its frames/sk pointers), causing kernel oops/panic even when the UAF is not fully turned into code execution."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/can/bcm.c"],"versions":[{"version":"c53a6ee88b0a91bd012ef1b7988c0b93dae6f24d","lessThan":"79305a826f872fe446c6fbf8450f515053ef6951","status":"affected","versionType":"git"},{"version":"c53a6ee88b0a91bd012ef1b7988c0b93dae6f24d","lessThan":"bf74aa86e111aa3b2fbb25db37e3a3fab71b5b68","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/can/bcm.c"],"versions":[{"version":"2.6.29","status":"affected"},{"version":"0","lessThan":"2.6.29","status":"unaffected","versionType":"semver"},{"version":"4.19.226","lessThanOrEqual":"4.19.*","status":"unaffected","versionType":"semver"},{"version":"5.4","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":"2.6.29","versionEndExcluding":"4.19.226"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.29","versionEndExcluding":"5.4"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/79305a826f872fe446c6fbf8450f515053ef6951"},{"url":"https://git.kernel.org/stable/c/bf74aa86e111aa3b2fbb25db37e3a3fab71b5b68"}],"title":"can: bcm: switch timer to HRTIMER_MODE_SOFT and remove hrtimer_tasklet","x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-07-27T13:44:24.567768Z","id":"CVE-2026-17523","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-07-27T13:44:45.277Z"}}]}}