{"id":"CVE-2025-38245","state":"PUBLISHED","title":"atm: Release atm_dev_mutex after removing procfs in atm_dev_deregister().","description":"In the Linux kernel, the following vulnerability has been resolved:\n\natm: Release atm_dev_mutex after removing procfs in atm_dev_deregister().\n\nsyzbot reported a warning below during atm_dev_register(). [0]\n\nBefore creating a new device and procfs/sysfs for it, atm_dev_register()\nlooks up a duplicated device by __atm_dev_lookup().  These operations are\ndone under atm_dev_mutex.\n\nHowever, when removing a device in atm_dev_deregister(), it releases the\nmutex just after removing the device from the list that __atm_dev_lookup()\niterates over.\n\nSo, there will be a small race window where the device does not exist on\nthe device list but procfs/sysfs are still not removed, triggering the\nsplat.\n\nLet's hold the mutex until procfs/sysfs are removed in\natm_dev_deregister().\n\n[0]:\nproc_dir_entry 'atm/atmtcp:0' already registered\nWARNING: CPU: 0 PID: 5919 at fs/proc/generic.c:377 proc_register+0x455/0x5f0 fs/proc/generic.c:377\nModules linked in:\nCPU: 0 UID: 0 PID: 5919 Comm: syz-executor284 Not tainted 6.16.0-rc2-syzkaller-00047-g52da431bf03b #0 PREEMPT(full)\nHardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025\nRIP: 0010:proc_register+0x455/0x5f0 fs/proc/generic.c:377\nCode: 48 89 f9 48 c1 e9 03 80 3c 01 00 0f 85 a2 01 00 00 48 8b 44 24 10 48 c7 c7 20 c0 c2 8b 48 8b b0 d8 00 00 00 e8 0c 02 1c ff 90 <0f> 0b 90 90 48 c7 c7 80 f2 82 8e e8 0b de 23 09 48 8b 4c 24 28 48\nRSP: 0018:ffffc9000466fa30 EFLAGS: 00010282\nRAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff817ae248\nRDX: ffff888026280000 RSI: ffffffff817ae255 RDI: 0000000000000001\nRBP: ffff8880232bed48 R08: 0000000000000001 R09: 0000000000000000\nR10: 0000000000000000 R11: 0000000000000001 R12: ffff888076ed2140\nR13: dffffc0000000000 R14: ffff888078a61340 R15: ffffed100edda444\nFS:  00007f38b3b0c6c0(0000) GS:ffff888124753000(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 00007f38b3bdf953 CR3: 0000000076d58000 CR4: 00000000003526f0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\nCall Trace:\n <TASK>\n proc_create_data+0xbe/0x110 fs/proc/generic.c:585\n atm_proc_dev_register+0x112/0x1e0 net/atm/proc.c:361\n atm_dev_register+0x46d/0x890 net/atm/resources.c:113\n atmtcp_create+0x77/0x210 drivers/atm/atmtcp.c:369\n atmtcp_attach drivers/atm/atmtcp.c:403 [inline]\n atmtcp_ioctl+0x2f9/0xd60 drivers/atm/atmtcp.c:464\n do_vcc_ioctl+0x12c/0x930 net/atm/ioctl.c:159\n sock_do_ioctl+0x115/0x280 net/socket.c:1190\n sock_ioctl+0x227/0x6b0 net/socket.c:1311\n vfs_ioctl fs/ioctl.c:51 [inline]\n __do_sys_ioctl fs/ioctl.c:907 [inline]\n __se_sys_ioctl fs/ioctl.c:893 [inline]\n __x64_sys_ioctl+0x18b/0x210 fs/ioctl.c:893\n do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]\n do_syscall_64+0xcd/0x4c0 arch/x86/entry/syscall_64.c:94\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\nRIP: 0033:0x7f38b3b74459\nCode: 28 00 00 00 75 05 48 83 c4 28 c3 e8 51 18 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48\nRSP: 002b:00007f38b3b0c198 EFLAGS: 00000246 ORIG_RAX: 0000000000000010\nRAX: ffffffffffffffda RBX: 00007f38b3bfe318 RCX: 00007f38b3b74459\nRDX: 0000000000000000 RSI: 0000000000006180 RDI: 0000000000000005\nRBP: 00007f38b3bfe310 R08: 65732f636f72702f R09: 65732f636f72702f\nR10: 65732f636f72702f R11: 0000000000000246 R12: 00007f38b3bcb0ac\nR13: 00007f38b3b0c1a0 R14: 0000200000000200 R15: 00007f38b3bcb03b\n </TASK>","publishedAt":"2025-07-09T10:42:27.263Z","updatedAt":"2026-05-11T21:24:03.878Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"2a8dcee649d12f69713f2589171a1caf6d4fa439","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"4bb1bb438134d9ee6b97cc07289dd7c569092eec","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"26248d5d68c865b888d632162abbf8130645622c","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"b2e40fcfe1575faaa548f87614006d3fe44c779e","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"cabed6ba92a9a8c09da02a3f20e32ecd80989896","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"ae539d963a17443ec54cba8a767e4ffa318264f4","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"6922f1a048c090f10704bbef4a3a1e81932d2e0a","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"a433791aeaea6e84df709e0b9584b9bbe040cd1c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/atm/resources.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.15","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.15","versionType":"semver"},{"version":"5.4.296","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.240","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.187","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.143","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.96","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.36","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.5","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/atm/resources.c"]}],"references":["https://git.kernel.org/stable/c/2a8dcee649d12f69713f2589171a1caf6d4fa439","https://git.kernel.org/stable/c/4bb1bb438134d9ee6b97cc07289dd7c569092eec","https://git.kernel.org/stable/c/26248d5d68c865b888d632162abbf8130645622c","https://git.kernel.org/stable/c/b2e40fcfe1575faaa548f87614006d3fe44c779e","https://git.kernel.org/stable/c/cabed6ba92a9a8c09da02a3f20e32ecd80989896","https://git.kernel.org/stable/c/ae539d963a17443ec54cba8a767e4ffa318264f4","https://git.kernel.org/stable/c/6922f1a048c090f10704bbef4a3a1e81932d2e0a","https://git.kernel.org/stable/c/a433791aeaea6e84df709e0b9584b9bbe040cd1c","https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html","https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html"],"weaknesses":[],"ingestedAt":"2026-10-29T20:09:09.358Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/38xxx/CVE-2025-38245.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2025-38245","state":"PUBLISHED","datePublished":"2025-07-09T10:42:27.263Z","dateUpdated":"2026-05-11T21:24:03.878Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-04-16T04:51:23.997Z"},"containers":{"cna":{"title":"atm: Release atm_dev_mutex after removing procfs in atm_dev_deregister().","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\natm: Release atm_dev_mutex after removing procfs in atm_dev_deregister().\n\nsyzbot reported a warning below during atm_dev_register(). [0]\n\nBefore creating a new device and procfs/sysfs for it, atm_dev_register()\nlooks up a duplicated device by __atm_dev_lookup().  These operations are\ndone under atm_dev_mutex.\n\nHowever, when removing a device in atm_dev_deregister(), it releases the\nmutex just after removing the device from the list that __atm_dev_lookup()\niterates over.\n\nSo, there will be a small race window where the device does not exist on\nthe device list but procfs/sysfs are still not removed, triggering the\nsplat.\n\nLet's hold the mutex until procfs/sysfs are removed in\natm_dev_deregister().\n\n[0]:\nproc_dir_entry 'atm/atmtcp:0' already registered\nWARNING: CPU: 0 PID: 5919 at fs/proc/generic.c:377 proc_register+0x455/0x5f0 fs/proc/generic.c:377\nModules linked in:\nCPU: 0 UID: 0 PID: 5919 Comm: syz-executor284 Not tainted 6.16.0-rc2-syzkaller-00047-g52da431bf03b #0 PREEMPT(full)\nHardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025\nRIP: 0010:proc_register+0x455/0x5f0 fs/proc/generic.c:377\nCode: 48 89 f9 48 c1 e9 03 80 3c 01 00 0f 85 a2 01 00 00 48 8b 44 24 10 48 c7 c7 20 c0 c2 8b 48 8b b0 d8 00 00 00 e8 0c 02 1c ff 90 <0f> 0b 90 90 48 c7 c7 80 f2 82 8e e8 0b de 23 09 48 8b 4c 24 28 48\nRSP: 0018:ffffc9000466fa30 EFLAGS: 00010282\nRAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff817ae248\nRDX: ffff888026280000 RSI: ffffffff817ae255 RDI: 0000000000000001\nRBP: ffff8880232bed48 R08: 0000000000000001 R09: 0000000000000000\nR10: 0000000000000000 R11: 0000000000000001 R12: ffff888076ed2140\nR13: dffffc0000000000 R14: ffff888078a61340 R15: ffffed100edda444\nFS:  00007f38b3b0c6c0(0000) GS:ffff888124753000(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 00007f38b3bdf953 CR3: 0000000076d58000 CR4: 00000000003526f0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\nCall Trace:\n <TASK>\n proc_create_data+0xbe/0x110 fs/proc/generic.c:585\n atm_proc_dev_register+0x112/0x1e0 net/atm/proc.c:361\n atm_dev_register+0x46d/0x890 net/atm/resources.c:113\n atmtcp_create+0x77/0x210 drivers/atm/atmtcp.c:369\n atmtcp_attach drivers/atm/atmtcp.c:403 [inline]\n atmtcp_ioctl+0x2f9/0xd60 drivers/atm/atmtcp.c:464\n do_vcc_ioctl+0x12c/0x930 net/atm/ioctl.c:159\n sock_do_ioctl+0x115/0x280 net/socket.c:1190\n sock_ioctl+0x227/0x6b0 net/socket.c:1311\n vfs_ioctl fs/ioctl.c:51 [inline]\n __do_sys_ioctl fs/ioctl.c:907 [inline]\n __se_sys_ioctl fs/ioctl.c:893 [inline]\n __x64_sys_ioctl+0x18b/0x210 fs/ioctl.c:893\n do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]\n do_syscall_64+0xcd/0x4c0 arch/x86/entry/syscall_64.c:94\n entry_SYSCALL_64_after_hwframe+0x77/0x7f\nRIP: 0033:0x7f38b3b74459\nCode: 28 00 00 00 75 05 48 83 c4 28 c3 e8 51 18 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48\nRSP: 002b:00007f38b3b0c198 EFLAGS: 00000246 ORIG_RAX: 0000000000000010\nRAX: ffffffffffffffda RBX: 00007f38b3bfe318 RCX: 00007f38b3b74459\nRDX: 0000000000000000 RSI: 0000000000006180 RDI: 0000000000000005\nRBP: 00007f38b3bfe310 R08: 65732f636f72702f R09: 65732f636f72702f\nR10: 65732f636f72702f R11: 0000000000000246 R12: 00007f38b3bcb0ac\nR13: 00007f38b3b0c1a0 R14: 0000200000000200 R15: 00007f38b3bcb03b\n </TASK>"}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"2a8dcee649d12f69713f2589171a1caf6d4fa439","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"4bb1bb438134d9ee6b97cc07289dd7c569092eec","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"26248d5d68c865b888d632162abbf8130645622c","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"b2e40fcfe1575faaa548f87614006d3fe44c779e","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"cabed6ba92a9a8c09da02a3f20e32ecd80989896","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"ae539d963a17443ec54cba8a767e4ffa318264f4","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"6922f1a048c090f10704bbef4a3a1e81932d2e0a","versionType":"git"},{"version":"64bf69ddff7637b7ed7acf9b2a823cc0ee519439","status":"affected","lessThan":"a433791aeaea6e84df709e0b9584b9bbe040cd1c","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/atm/resources.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"2.6.15","status":"affected"},{"version":"0","status":"unaffected","lessThan":"2.6.15","versionType":"semver"},{"version":"5.4.296","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.240","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.187","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.143","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.96","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.36","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.15.5","status":"unaffected","lessThanOrEqual":"6.15.*","versionType":"semver"},{"version":"6.16","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/atm/resources.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/2a8dcee649d12f69713f2589171a1caf6d4fa439"},{"url":"https://git.kernel.org/stable/c/4bb1bb438134d9ee6b97cc07289dd7c569092eec"},{"url":"https://git.kernel.org/stable/c/26248d5d68c865b888d632162abbf8130645622c"},{"url":"https://git.kernel.org/stable/c/b2e40fcfe1575faaa548f87614006d3fe44c779e"},{"url":"https://git.kernel.org/stable/c/cabed6ba92a9a8c09da02a3f20e32ecd80989896"},{"url":"https://git.kernel.org/stable/c/ae539d963a17443ec54cba8a767e4ffa318264f4"},{"url":"https://git.kernel.org/stable/c/6922f1a048c090f10704bbef4a3a1e81932d2e0a"},{"url":"https://git.kernel.org/stable/c/a433791aeaea6e84df709e0b9584b9bbe040cd1c"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T21:24:03.878Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.15","versionEndExcluding":"5.4.296"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.15","versionEndExcluding":"5.10.240"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.15","versionEndExcluding":"5.15.187"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.15","versionEndExcluding":"6.1.143"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.15","versionEndExcluding":"6.6.96"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.15","versionEndExcluding":"6.12.36"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.15","versionEndExcluding":"6.15.5"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"2.6.15","versionEndExcluding":"6.16"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CVE Program Container","references":[{"url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"},{"url":"https://lists.debian.org/debian-lts-announce/2025/10/msg00007.html"}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2025-11-03T17:35:55.198Z"}}]}}}