{"id":"CVE-2026-64004","state":"PUBLISHED","title":"net/iucv: fix locking in .getsockopt","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/iucv: fix locking in .getsockopt\n\nMirror iucv_sock_setsockopt() and wrap the whole switch in\nlock_sock()/release_sock(). The pre-existing SO_MSGLIMIT-only lock\nbecomes redundant and is removed.\n\nAny AF_IUCV HIPER user can potentially crash the kernel by racing\nrecvmsg() with getsockopt(SO_MSGSIZE): the SO_MSGSIZE arm dereferences\niucv->hs_dev->mtu after iucv_sock_close() (called from the racing\nrecvmsg()) has set hs_dev to NULL, producing a NULL pointer dereference\noops.","publishedAt":"2026-07-19T14:56:20.895Z","updatedAt":"2026-10-19T20:18:02.698Z","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":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"884eb247b74d86db97e3a37f0d6fc8e1e83590dd","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"45bb8de8c95d8899f4b8f61bd9bceb8132af73cb","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"1fc30bd4e55e2dd622d2d366cecd732c1841bbee","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"cd691beafea0dd779e69e81ccc26b0ab50efcb5e","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"6e792b8dd3002bbc4136745928a9605df1a72b8a","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"9817369243380e287ebe5525411557eaa3aa2a79","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"69554adc7a6fa04ede3ad7512321d83748e3c920","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"3589d20a666caf30ad100c960a2de7de390fce88","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/iucv/af_iucv.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.4","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.4","versionType":"semver"},{"version":"5.10.259","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.210","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.176","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.93","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.35","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.12","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/iucv/af_iucv.c"]}],"references":["https://git.kernel.org/stable/c/884eb247b74d86db97e3a37f0d6fc8e1e83590dd","https://git.kernel.org/stable/c/45bb8de8c95d8899f4b8f61bd9bceb8132af73cb","https://git.kernel.org/stable/c/1fc30bd4e55e2dd622d2d366cecd732c1841bbee","https://git.kernel.org/stable/c/cd691beafea0dd779e69e81ccc26b0ab50efcb5e","https://git.kernel.org/stable/c/6e792b8dd3002bbc4136745928a9605df1a72b8a","https://git.kernel.org/stable/c/9817369243380e287ebe5525411557eaa3aa2a79","https://git.kernel.org/stable/c/69554adc7a6fa04ede3ad7512321d83748e3c920","https://git.kernel.org/stable/c/3589d20a666caf30ad100c960a2de7de390fce88"],"weaknesses":["CWE-362"],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64004.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64004","state":"PUBLISHED","datePublished":"2026-07-19T14:56:20.895Z","dateUpdated":"2026-10-19T20:18:02.698Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T07:54:57.026Z"},"containers":{"cna":{"title":"net/iucv: fix locking in .getsockopt","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/iucv: fix locking in .getsockopt\n\nMirror iucv_sock_setsockopt() and wrap the whole switch in\nlock_sock()/release_sock(). The pre-existing SO_MSGLIMIT-only lock\nbecomes redundant and is removed.\n\nAny AF_IUCV HIPER user can potentially crash the kernel by racing\nrecvmsg() with getsockopt(SO_MSGSIZE): the SO_MSGSIZE arm dereferences\niucv->hs_dev->mtu after iucv_sock_close() (called from the racing\nrecvmsg()) has set hs_dev to NULL, producing a NULL pointer dereference\noops."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"884eb247b74d86db97e3a37f0d6fc8e1e83590dd","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"45bb8de8c95d8899f4b8f61bd9bceb8132af73cb","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"1fc30bd4e55e2dd622d2d366cecd732c1841bbee","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"cd691beafea0dd779e69e81ccc26b0ab50efcb5e","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"6e792b8dd3002bbc4136745928a9605df1a72b8a","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"9817369243380e287ebe5525411557eaa3aa2a79","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"69554adc7a6fa04ede3ad7512321d83748e3c920","versionType":"git"},{"version":"51363b8751a673a00ad48eea895266396d53fa52","status":"affected","lessThan":"3589d20a666caf30ad100c960a2de7de390fce88","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/iucv/af_iucv.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"3.4","status":"affected"},{"version":"0","status":"unaffected","lessThan":"3.4","versionType":"semver"},{"version":"5.10.259","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.210","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.176","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.143","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.93","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.35","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.0.12","status":"unaffected","lessThanOrEqual":"7.0.*","versionType":"semver"},{"version":"7.1","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/iucv/af_iucv.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/884eb247b74d86db97e3a37f0d6fc8e1e83590dd"},{"url":"https://git.kernel.org/stable/c/45bb8de8c95d8899f4b8f61bd9bceb8132af73cb"},{"url":"https://git.kernel.org/stable/c/1fc30bd4e55e2dd622d2d366cecd732c1841bbee"},{"url":"https://git.kernel.org/stable/c/cd691beafea0dd779e69e81ccc26b0ab50efcb5e"},{"url":"https://git.kernel.org/stable/c/6e792b8dd3002bbc4136745928a9605df1a72b8a"},{"url":"https://git.kernel.org/stable/c/9817369243380e287ebe5525411557eaa3aa2a79"},{"url":"https://git.kernel.org/stable/c/69554adc7a6fa04ede3ad7512321d83748e3c920"},{"url":"https://git.kernel.org/stable/c/3589d20a666caf30ad100c960a2de7de390fce88"}],"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 flaw is reached through the getsockopt(2) syscall on an AF_IUCV HIPER socket; the generic socket layer does not acquire the socket lock before calling iucv_sock_getsockopt(), so exploitation requires local access to the socket file descriptor.\nAC:L - The attacker controls both sides of the race by running concurrent getsockopt(SO_MSGSIZE) and recvmsg()/close() threads on the same socket, making the window reliably winnable without external timing luck.\nPR:L - The fix commit explicitly states any AF_IUCV HIPER user can trigger the crash, and iucv_sock_create imposes no capability or root requirement beyond creating and binding a HiperSockets AF_IUCV socket on s390.\nUI:N - Exploitation requires no action from any other user; the attacker races their own syscalls on a socket they control.\nS:U - The impact is a kernel oops or crash within the same kernel security boundary, with no cross-VM, cross-container, or IOMMU boundary crossing.\nC:H - The unlocked TOCTOU between the hs_dev NULL check and dereference races with dev_put() freeing the net_device, creating a use-after-free read whose mtu field is copied to userspace via copy_to_user.\nI:H - Use-after-free on a freed net_device structure in kernel heap memory is a memory corruption primitive that could be further leveraged for control-flow hijacking, and per kernel CVSS guidance UAF bugs warrant High integrity impact.\nA:H - Successful exploitation produces a NULL pointer dereference oops or kernel panic, causing complete loss of availability on the affected IBM Z LPAR or guest."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T12:38:04.824Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.4","versionEndExcluding":"5.10.259"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.4","versionEndExcluding":"5.15.210"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.4","versionEndExcluding":"6.1.176"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.4","versionEndExcluding":"6.6.143"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.4","versionEndExcluding":"6.12.93"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.4","versionEndExcluding":"6.18.35"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.4","versionEndExcluding":"7.0.12"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.4","versionEndExcluding":"7.1"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"id":"CVE-2026-64004","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"version":"2.0.3","timestamp":"2026-10-16T15:35:08.073684Z"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-362","lang":"en","type":"CWE","description":"CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-19T20:18:02.698Z"}}]}}}