cve-2024-36972
Vulnerability from cvelistv5
Published
2024-06-10 14:57
Modified
2024-11-05 09:29
Severity ?
EPSS score ?
Summary
af_unix: Update unix_sk(sk)->oob_skb under sk_receive_queue lock.
References
{ "containers": { "adp": [ { "affected": [ { "cpes": [ "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*" ], "defaultStatus": "unaffected", "product": "linux_kernel", "vendor": "linux", "versions": [ { "lessThan": "518a994aa0b8", "status": "affected", "version": "4fe505c63aa3", "versionType": "git" }, { "lessThan": "4bf6964451c3", "status": "affected", "version": "e0e09186d882", "versionType": "git" }, { "lessThan": "d59ae9314b97", "status": "affected", "version": "b74aa9ce13d0", "versionType": "custom" }, { "lessThan": "4708f49add84", "status": "affected", "version": "1279f9d9dec2", "versionType": "custom" }, { "lessThan": "9841991a446c", "status": "affected", "version": "1279f9d9dec2", "versionType": "custom" } ] }, { "cpes": [ "cpe:2.3:o:linux:linux_kernel:6.8:-:*:*:*:*:*:*" ], "defaultStatus": "affected", "product": "linux_kernel", "vendor": "linux", "versions": [ { "status": "affected", "version": "6.8" } ] } ], "metrics": [ { "cvssV3_1": { "attackComplexity": "HIGH", "attackVector": "NETWORK", "availabilityImpact": "HIGH", "baseScore": 7.5, "baseSeverity": "HIGH", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "privilegesRequired": "LOW", "scope": "UNCHANGED", "userInteraction": "NONE", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "version": "3.1" } }, { "other": { "content": { "id": "CVE-2024-36972", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "total" } ], "role": "CISA Coordinator", "timestamp": "2024-09-05T03:56:02.065864Z", "version": "2.0.3" }, "type": "ssvc" } } ], "problemTypes": [ { "descriptions": [ { "cweId": "CWE-476", "description": "CWE-476 NULL Pointer Dereference", "lang": "en", "type": "CWE" } ] } ], "providerMetadata": { "dateUpdated": "2024-09-05T15:34:54.248Z", "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP" }, "title": "CISA ADP Vulnrichment" }, { "providerMetadata": { "dateUpdated": "2024-08-02T03:43:50.584Z", "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE" }, "references": [ { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/518a994aa0b87d96f1bc6678a7035df5d1fcd7a1" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/4bf6964451c3cb411fbaa1ae8b214b3d97a59bf1" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/d59ae9314b97e01c76a4171472441e55721ba636" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/4708f49add84a57ce0ccc7bf9a6269845c631cc3" }, { "tags": [ "x_transferred" ], "url": "https://git.kernel.org/stable/c/9841991a446c87f90f66f4b9fee6fe934c1336a2" } ], "title": "CVE Program Container" } ], "cna": { "affected": [ { "defaultStatus": "unaffected", "product": "Linux", "programFiles": [ "net/unix/af_unix.c" ], "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "vendor": "Linux", "versions": [ { "lessThan": "518a994aa0b8", "status": "affected", "version": "4fe505c63aa3", "versionType": "git" }, { "lessThan": "4bf6964451c3", "status": "affected", "version": "e0e09186d882", "versionType": "git" }, { "lessThan": "d59ae9314b97", "status": "affected", "version": "b74aa9ce13d0", "versionType": "git" }, { "lessThan": "4708f49add84", "status": "affected", "version": "1279f9d9dec2", "versionType": "git" }, { "lessThan": "9841991a446c", "status": "affected", "version": "1279f9d9dec2", "versionType": "git" } ] }, { "defaultStatus": "affected", "product": "Linux", "programFiles": [ "net/unix/af_unix.c" ], "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "vendor": "Linux", "versions": [ { "status": "affected", "version": "6.8" }, { "lessThan": "6.8", "status": "unaffected", "version": "0", "versionType": "semver" }, { "lessThanOrEqual": "5.15.*", "status": "unaffected", "version": "5.15.161", "versionType": "semver" }, { "lessThanOrEqual": "6.1.*", "status": "unaffected", "version": "6.1.93", "versionType": "semver" }, { "lessThanOrEqual": "6.6.*", "status": "unaffected", "version": "6.6.33", "versionType": "semver" }, { "lessThanOrEqual": "6.9.*", "status": "unaffected", "version": "6.9.4", "versionType": "semver" }, { "lessThanOrEqual": "*", "status": "unaffected", "version": "6.10", "versionType": "original_commit_for_fix" } ] } ], "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\naf_unix: Update unix_sk(sk)-\u003eoob_skb under sk_receive_queue lock.\n\nBilly Jheng Bing-Jhong reported a race between __unix_gc() and\nqueue_oob().\n\n__unix_gc() tries to garbage-collect close()d inflight sockets,\nand then if the socket has MSG_OOB in unix_sk(sk)-\u003eoob_skb, GC\nwill drop the reference and set NULL to it locklessly.\n\nHowever, the peer socket still can send MSG_OOB message and\nqueue_oob() can update unix_sk(sk)-\u003eoob_skb concurrently, leading\nNULL pointer dereference. [0]\n\nTo fix the issue, let\u0027s update unix_sk(sk)-\u003eoob_skb under the\nsk_receive_queue\u0027s lock and take it everywhere we touch oob_skb.\n\nNote that we defer kfree_skb() in manage_oob() to silence lockdep\nfalse-positive (See [1]).\n\n[0]:\nBUG: kernel NULL pointer dereference, address: 0000000000000008\n PF: supervisor write access in kernel mode\n PF: error_code(0x0002) - not-present page\nPGD 8000000009f5e067 P4D 8000000009f5e067 PUD 9f5d067 PMD 0\nOops: 0002 [#1] PREEMPT SMP PTI\nCPU: 3 PID: 50 Comm: kworker/3:1 Not tainted 6.9.0-rc5-00191-gd091e579b864 #110\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014\nWorkqueue: events delayed_fput\nRIP: 0010:skb_dequeue (./include/linux/skbuff.h:2386 ./include/linux/skbuff.h:2402 net/core/skbuff.c:3847)\nCode: 39 e3 74 3e 8b 43 10 48 89 ef 83 e8 01 89 43 10 49 8b 44 24 08 49 c7 44 24 08 00 00 00 00 49 8b 14 24 49 c7 04 24 00 00 00 00 \u003c48\u003e 89 42 08 48 89 10 e8 e7 c5 42 00 4c 89 e0 5b 5d 41 5c c3 cc cc\nRSP: 0018:ffffc900001bfd48 EFLAGS: 00000002\nRAX: 0000000000000000 RBX: ffff8880088f5ae8 RCX: 00000000361289f9\nRDX: 0000000000000000 RSI: 0000000000000206 RDI: ffff8880088f5b00\nRBP: ffff8880088f5b00 R08: 0000000000080000 R09: 0000000000000001\nR10: 0000000000000003 R11: 0000000000000001 R12: ffff8880056b6a00\nR13: ffff8880088f5280 R14: 0000000000000001 R15: ffff8880088f5a80\nFS: 0000000000000000(0000) GS:ffff88807dd80000(0000) knlGS:0000000000000000\nCS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\nCR2: 0000000000000008 CR3: 0000000006314000 CR4: 00000000007506f0\nPKRU: 55555554\nCall Trace:\n \u003cTASK\u003e\n unix_release_sock (net/unix/af_unix.c:654)\n unix_release (net/unix/af_unix.c:1050)\n __sock_release (net/socket.c:660)\n sock_close (net/socket.c:1423)\n __fput (fs/file_table.c:423)\n delayed_fput (fs/file_table.c:444 (discriminator 3))\n process_one_work (kernel/workqueue.c:3259)\n worker_thread (kernel/workqueue.c:3329 kernel/workqueue.c:3416)\n kthread (kernel/kthread.c:388)\n ret_from_fork (arch/x86/kernel/process.c:153)\n ret_from_fork_asm (arch/x86/entry/entry_64.S:257)\n \u003c/TASK\u003e\nModules linked in:\nCR2: 0000000000000008" } ], "providerMetadata": { "dateUpdated": "2024-11-05T09:29:06.670Z", "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux" }, "references": [ { "url": "https://git.kernel.org/stable/c/518a994aa0b87d96f1bc6678a7035df5d1fcd7a1" }, { "url": "https://git.kernel.org/stable/c/4bf6964451c3cb411fbaa1ae8b214b3d97a59bf1" }, { "url": "https://git.kernel.org/stable/c/d59ae9314b97e01c76a4171472441e55721ba636" }, { "url": "https://git.kernel.org/stable/c/4708f49add84a57ce0ccc7bf9a6269845c631cc3" }, { "url": "https://git.kernel.org/stable/c/9841991a446c87f90f66f4b9fee6fe934c1336a2" } ], "title": "af_unix: Update unix_sk(sk)-\u003eoob_skb under sk_receive_queue lock.", "x_generator": { "engine": "bippy-9e1c9544281a" } } }, "cveMetadata": { "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "assignerShortName": "Linux", "cveId": "CVE-2024-36972", "datePublished": "2024-06-10T14:57:42.271Z", "dateReserved": "2024-05-30T15:25:07.082Z", "dateUpdated": "2024-11-05T09:29:06.670Z", "state": "PUBLISHED" }, "dataType": "CVE_RECORD", "dataVersion": "5.1", "meta": { "nvd": "{\"cve\":{\"id\":\"CVE-2024-36972\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-06-10T15:15:52.617\",\"lastModified\":\"2024-09-05T16:35:20.120\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\naf_unix: Update unix_sk(sk)-\u003eoob_skb under sk_receive_queue lock.\\n\\nBilly Jheng Bing-Jhong reported a race between __unix_gc() and\\nqueue_oob().\\n\\n__unix_gc() tries to garbage-collect close()d inflight sockets,\\nand then if the socket has MSG_OOB in unix_sk(sk)-\u003eoob_skb, GC\\nwill drop the reference and set NULL to it locklessly.\\n\\nHowever, the peer socket still can send MSG_OOB message and\\nqueue_oob() can update unix_sk(sk)-\u003eoob_skb concurrently, leading\\nNULL pointer dereference. [0]\\n\\nTo fix the issue, let\u0027s update unix_sk(sk)-\u003eoob_skb under the\\nsk_receive_queue\u0027s lock and take it everywhere we touch oob_skb.\\n\\nNote that we defer kfree_skb() in manage_oob() to silence lockdep\\nfalse-positive (See [1]).\\n\\n[0]:\\nBUG: kernel NULL pointer dereference, address: 0000000000000008\\n PF: supervisor write access in kernel mode\\n PF: error_code(0x0002) - not-present page\\nPGD 8000000009f5e067 P4D 8000000009f5e067 PUD 9f5d067 PMD 0\\nOops: 0002 [#1] PREEMPT SMP PTI\\nCPU: 3 PID: 50 Comm: kworker/3:1 Not tainted 6.9.0-rc5-00191-gd091e579b864 #110\\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014\\nWorkqueue: events delayed_fput\\nRIP: 0010:skb_dequeue (./include/linux/skbuff.h:2386 ./include/linux/skbuff.h:2402 net/core/skbuff.c:3847)\\nCode: 39 e3 74 3e 8b 43 10 48 89 ef 83 e8 01 89 43 10 49 8b 44 24 08 49 c7 44 24 08 00 00 00 00 49 8b 14 24 49 c7 04 24 00 00 00 00 \u003c48\u003e 89 42 08 48 89 10 e8 e7 c5 42 00 4c 89 e0 5b 5d 41 5c c3 cc cc\\nRSP: 0018:ffffc900001bfd48 EFLAGS: 00000002\\nRAX: 0000000000000000 RBX: ffff8880088f5ae8 RCX: 00000000361289f9\\nRDX: 0000000000000000 RSI: 0000000000000206 RDI: ffff8880088f5b00\\nRBP: ffff8880088f5b00 R08: 0000000000080000 R09: 0000000000000001\\nR10: 0000000000000003 R11: 0000000000000001 R12: ffff8880056b6a00\\nR13: ffff8880088f5280 R14: 0000000000000001 R15: ffff8880088f5a80\\nFS: 0000000000000000(0000) GS:ffff88807dd80000(0000) knlGS:0000000000000000\\nCS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\\nCR2: 0000000000000008 CR3: 0000000006314000 CR4: 00000000007506f0\\nPKRU: 55555554\\nCall Trace:\\n \u003cTASK\u003e\\n unix_release_sock (net/unix/af_unix.c:654)\\n unix_release (net/unix/af_unix.c:1050)\\n __sock_release (net/socket.c:660)\\n sock_close (net/socket.c:1423)\\n __fput (fs/file_table.c:423)\\n delayed_fput (fs/file_table.c:444 (discriminator 3))\\n process_one_work (kernel/workqueue.c:3259)\\n worker_thread (kernel/workqueue.c:3329 kernel/workqueue.c:3416)\\n kthread (kernel/kthread.c:388)\\n ret_from_fork (arch/x86/kernel/process.c:153)\\n ret_from_fork_asm (arch/x86/entry/entry_64.S:257)\\n \u003c/TASK\u003e\\nModules linked in:\\nCR2: 0000000000000008\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: af_unix: actualice unix_sk(sk)-\u0026gt;oob_skb bajo el bloqueo sk_receive_queue. Billy Jheng Bing-Jhong inform\u00f3 de una ejecuci\u00f3n entre __unix_gc() y queue_oob(). __unix_gc() intenta recolectar basura de sockets en vuelo close()d, y luego, si el socket tiene MSG_OOB en unix_sk(sk)-\u0026gt;oob_skb, GC eliminar\u00e1 la referencia y establecer\u00e1 NULL sin bloqueo. Sin embargo, el socket del par a\u00fan puede enviar el mensaje MSG_OOB y queue_oob() puede actualizar unix_sk(sk)-\u0026gt;oob_skb simult\u00e1neamente, lo que lleva a la desreferencia del puntero NULL. [0] Para solucionar el problema, actualicemos unix_sk(sk)-\u0026gt;oob_skb bajo el bloqueo de sk_receive_queue y lo llevemos a todos los lugares donde toquemos oob_skb. Tenga en cuenta que posponemos kfree_skb() en Manage_oob() para silenciar el falso positivo de Lockdep (consulte [1]). [0]: ERROR: desreferencia del puntero NULL del kernel, direcci\u00f3n: 0000000000000008 PF: acceso de escritura del supervisor en modo kernel PF: error_code(0x0002) - p\u00e1gina no presente PGD 8000000009f5e067 P4D 8000000009f5e067 PUD 9f5d067 PMD 0 Ups: 02 [#1] SMP ADELANTADO PTI CPU: 3 PID: 50 Comm: kworker/3:1 No contaminado 6.9.0-rc5-00191-gd091e579b864 #110 Nombre del hardware: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0- gd239552ce722-prebuilt.qemu.org 01/04/2014 Cola de trabajo: eventos retrasados_fput RIP: 0010:skb_dequeue (./include/linux/skbuff.h:2386 ./include/linux/skbuff.h:2402 net/core/skbuff. c:3847) C\u00f3digo: 39 e3 74 3e 8b 43 10 48 89 ef 83 e8 01 89 43 10 49 8b 44 24 08 49 c7 44 24 08 00 00 00 00 49 8b 14 24 49 c7 04 24 00 0 00 00 \u0026lt;48 \u0026gt; 89 42 08 48 89 10 e8 e7 c5 42 00 4c 89 e0 5b 5d 41 5c c3 cc cc RSP: 0018:ffffc900001bfd48 EFLAGS: 00000002 RAX: 0000000000000000 RBX: 80088f5ae8 RCX: 00000000361289f9 RDX: 0000000000000000 RSI: 0000000000000206 RDI: ffff8880088f5b00 RBP: ffff8880088f5b00 R08: 0000000000080000 R09: 0000000000000001 R10: 0000000000000003 R11: 00000000000000001 R12: ffff8880056b6a00 R13: ffff8880088f5280 R14: 0000000000000001 R15: ffff8880088f5a80 FS: 0000000000000000(0000) GS:ffff88807dd80000(0000) knlGS:00000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0 : 0000000080050033 CR2: 0000000000000008 CR3: 0000000006314000 CR4: 00000000007506f0 PKRU: 55555554 Seguimiento de llamadas: unix_release_sock (net/unix/af_unix.c:654) ix_release (net/unix/af_unix.c:1050) __sock_release (net/socket. c:660) sock_close (net/socket.c:1423) __fput (fs/file_table.c:423) retrasado_fput (fs/file_table.c:444 (discriminador 3)) Process_one_work (kernel/workqueue.c:3259) trabajador_thread ( kernel/workqueue.c:3329 kernel/workqueue.c:3416) kthread (kernel/kthread.c:388) ret_from_fork (arch/x86/kernel/process.c:153) ret_from_fork_asm (arch/x86/entry/entry_64.S :257) M\u00f3dulos vinculados en: CR2: 0000000000000008\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"HIGH\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\",\"baseScore\":7.5,\"baseSeverity\":\"HIGH\"},\"exploitabilityScore\":1.6,\"impactScore\":5.9}]},\"weaknesses\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-476\"}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/4708f49add84a57ce0ccc7bf9a6269845c631cc3\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/4bf6964451c3cb411fbaa1ae8b214b3d97a59bf1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/518a994aa0b87d96f1bc6678a7035df5d1fcd7a1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/9841991a446c87f90f66f4b9fee6fe934c1336a2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/d59ae9314b97e01c76a4171472441e55721ba636\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}" } }
Loading...
Loading...
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.