cve-2024-50095
Vulnerability from cvelistv5
Published
2024-11-05 17:04
Modified
2024-11-05 17:04
Severity ?
EPSS score ?
Summary
RDMA/mad: Improve handling of timed out WRs of mad agent
References
{ "containers": { "cna": { "affected": [ { "defaultStatus": "unaffected", "product": "Linux", "programFiles": [ "drivers/infiniband/core/mad.c" ], "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "vendor": "Linux", "versions": [ { "lessThan": "713adaf0ecfc", "status": "affected", "version": "1da177e4c3f4", "versionType": "git" }, { "lessThan": "7022a517bf1c", "status": "affected", "version": "1da177e4c3f4", "versionType": "git" }, { "lessThan": "e80eadb3604a", "status": "affected", "version": "1da177e4c3f4", "versionType": "git" }, { "lessThan": "a195a42dd25c", "status": "affected", "version": "1da177e4c3f4", "versionType": "git" }, { "lessThan": "3e799fa46350", "status": "affected", "version": "1da177e4c3f4", "versionType": "git" }, { "lessThan": "2a777679b8cc", "status": "affected", "version": "1da177e4c3f4", "versionType": "git" } ] }, { "defaultStatus": "affected", "product": "Linux", "programFiles": [ "drivers/infiniband/core/mad.c" ], "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "vendor": "Linux", "versions": [ { "lessThanOrEqual": "5.10.*", "status": "unaffected", "version": "5.10.227", "versionType": "semver" }, { "lessThanOrEqual": "5.15.*", "status": "unaffected", "version": "5.15.168", "versionType": "semver" }, { "lessThanOrEqual": "6.1.*", "status": "unaffected", "version": "6.1.113", "versionType": "semver" }, { "lessThanOrEqual": "6.6.*", "status": "unaffected", "version": "6.6.57", "versionType": "semver" }, { "lessThanOrEqual": "6.11.*", "status": "unaffected", "version": "6.11.4", "versionType": "semver" }, { "lessThanOrEqual": "*", "status": "unaffected", "version": "6.12-rc1", "versionType": "original_commit_for_fix" } ] } ], "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nRDMA/mad: Improve handling of timed out WRs of mad agent\n\nCurrent timeout handler of mad agent acquires/releases mad_agent_priv\nlock for every timed out WRs. This causes heavy locking contention\nwhen higher no. of WRs are to be handled inside timeout handler.\n\nThis leads to softlockup with below trace in some use cases where\nrdma-cm path is used to establish connection between peer nodes\n\nTrace:\n-----\n BUG: soft lockup - CPU#4 stuck for 26s! [kworker/u128:3:19767]\n CPU: 4 PID: 19767 Comm: kworker/u128:3 Kdump: loaded Tainted: G OE\n ------- --- 5.14.0-427.13.1.el9_4.x86_64 #1\n Hardware name: Dell Inc. PowerEdge R740/01YM03, BIOS 2.4.8 11/26/2019\n Workqueue: ib_mad1 timeout_sends [ib_core]\n RIP: 0010:__do_softirq+0x78/0x2ac\n RSP: 0018:ffffb253449e4f98 EFLAGS: 00000246\n RAX: 00000000ffffffff RBX: 0000000000000000 RCX: 000000000000001f\n RDX: 000000000000001d RSI: 000000003d1879ab RDI: fff363b66fd3a86b\n RBP: ffffb253604cbcd8 R08: 0000009065635f3b R09: 0000000000000000\n R10: 0000000000000040 R11: ffffb253449e4ff8 R12: 0000000000000000\n R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000040\n FS: 0000000000000000(0000) GS:ffff8caa1fc80000(0000) knlGS:0000000000000000\n CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\n CR2: 00007fd9ec9db900 CR3: 0000000891934006 CR4: 00000000007706e0\n DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\n DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\n PKRU: 55555554\n Call Trace:\n \u003cIRQ\u003e\n ? show_trace_log_lvl+0x1c4/0x2df\n ? show_trace_log_lvl+0x1c4/0x2df\n ? __irq_exit_rcu+0xa1/0xc0\n ? watchdog_timer_fn+0x1b2/0x210\n ? __pfx_watchdog_timer_fn+0x10/0x10\n ? __hrtimer_run_queues+0x127/0x2c0\n ? hrtimer_interrupt+0xfc/0x210\n ? __sysvec_apic_timer_interrupt+0x5c/0x110\n ? sysvec_apic_timer_interrupt+0x37/0x90\n ? asm_sysvec_apic_timer_interrupt+0x16/0x20\n ? __do_softirq+0x78/0x2ac\n ? __do_softirq+0x60/0x2ac\n __irq_exit_rcu+0xa1/0xc0\n sysvec_call_function_single+0x72/0x90\n \u003c/IRQ\u003e\n \u003cTASK\u003e\n asm_sysvec_call_function_single+0x16/0x20\n RIP: 0010:_raw_spin_unlock_irq+0x14/0x30\n RSP: 0018:ffffb253604cbd88 EFLAGS: 00000247\n RAX: 000000000001960d RBX: 0000000000000002 RCX: ffff8cad2a064800\n RDX: 000000008020001b RSI: 0000000000000001 RDI: ffff8cad5d39f66c\n RBP: ffff8cad5d39f600 R08: 0000000000000001 R09: 0000000000000000\n R10: ffff8caa443e0c00 R11: ffffb253604cbcd8 R12: ffff8cacb8682538\n R13: 0000000000000005 R14: ffffb253604cbd90 R15: ffff8cad5d39f66c\n cm_process_send_error+0x122/0x1d0 [ib_cm]\n timeout_sends+0x1dd/0x270 [ib_core]\n process_one_work+0x1e2/0x3b0\n ? __pfx_worker_thread+0x10/0x10\n worker_thread+0x50/0x3a0\n ? __pfx_worker_thread+0x10/0x10\n kthread+0xdd/0x100\n ? __pfx_kthread+0x10/0x10\n ret_from_fork+0x29/0x50\n \u003c/TASK\u003e\n\nSimplified timeout handler by creating local list of timed out WRs\nand invoke send handler post creating the list. The new method acquires/\nreleases lock once to fetch the list and hence helps to reduce locking\ncontetiong when processing higher no. of WRs" } ], "providerMetadata": { "dateUpdated": "2024-11-05T17:04:58.042Z", "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux" }, "references": [ { "url": "https://git.kernel.org/stable/c/713adaf0ecfc49405f6e5d9e409d984f628de818" }, { "url": "https://git.kernel.org/stable/c/7022a517bf1ca37ef5a474365bcc5eafd345a13a" }, { "url": "https://git.kernel.org/stable/c/e80eadb3604a92d2d086e956b8b2692b699d4d0a" }, { "url": "https://git.kernel.org/stable/c/a195a42dd25ca4f12489687065d00be64939409f" }, { "url": "https://git.kernel.org/stable/c/3e799fa463508abe7a738ce5d0f62a8dfd05262a" }, { "url": "https://git.kernel.org/stable/c/2a777679b8ccd09a9a65ea0716ef10365179caac" } ], "title": "RDMA/mad: Improve handling of timed out WRs of mad agent", "x_generator": { "engine": "bippy-9e1c9544281a" } } }, "cveMetadata": { "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "assignerShortName": "Linux", "cveId": "CVE-2024-50095", "datePublished": "2024-11-05T17:04:58.042Z", "dateReserved": "2024-10-21T19:36:19.944Z", "dateUpdated": "2024-11-05T17:04:58.042Z", "state": "PUBLISHED" }, "dataType": "CVE_RECORD", "dataVersion": "5.1", "meta": { "nvd": "{\"cve\":{\"id\":\"CVE-2024-50095\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-11-05T17:15:06.797\",\"lastModified\":\"2024-11-12T20:26:00.470\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nRDMA/mad: Improve handling of timed out WRs of mad agent\\n\\nCurrent timeout handler of mad agent acquires/releases mad_agent_priv\\nlock for every timed out WRs. This causes heavy locking contention\\nwhen higher no. of WRs are to be handled inside timeout handler.\\n\\nThis leads to softlockup with below trace in some use cases where\\nrdma-cm path is used to establish connection between peer nodes\\n\\nTrace:\\n-----\\n BUG: soft lockup - CPU#4 stuck for 26s! [kworker/u128:3:19767]\\n CPU: 4 PID: 19767 Comm: kworker/u128:3 Kdump: loaded Tainted: G OE\\n ------- --- 5.14.0-427.13.1.el9_4.x86_64 #1\\n Hardware name: Dell Inc. PowerEdge R740/01YM03, BIOS 2.4.8 11/26/2019\\n Workqueue: ib_mad1 timeout_sends [ib_core]\\n RIP: 0010:__do_softirq+0x78/0x2ac\\n RSP: 0018:ffffb253449e4f98 EFLAGS: 00000246\\n RAX: 00000000ffffffff RBX: 0000000000000000 RCX: 000000000000001f\\n RDX: 000000000000001d RSI: 000000003d1879ab RDI: fff363b66fd3a86b\\n RBP: ffffb253604cbcd8 R08: 0000009065635f3b R09: 0000000000000000\\n R10: 0000000000000040 R11: ffffb253449e4ff8 R12: 0000000000000000\\n R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000040\\n FS: 0000000000000000(0000) GS:ffff8caa1fc80000(0000) knlGS:0000000000000000\\n CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033\\n CR2: 00007fd9ec9db900 CR3: 0000000891934006 CR4: 00000000007706e0\\n DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\\n DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400\\n PKRU: 55555554\\n Call Trace:\\n \u003cIRQ\u003e\\n ? show_trace_log_lvl+0x1c4/0x2df\\n ? show_trace_log_lvl+0x1c4/0x2df\\n ? __irq_exit_rcu+0xa1/0xc0\\n ? watchdog_timer_fn+0x1b2/0x210\\n ? __pfx_watchdog_timer_fn+0x10/0x10\\n ? __hrtimer_run_queues+0x127/0x2c0\\n ? hrtimer_interrupt+0xfc/0x210\\n ? __sysvec_apic_timer_interrupt+0x5c/0x110\\n ? sysvec_apic_timer_interrupt+0x37/0x90\\n ? asm_sysvec_apic_timer_interrupt+0x16/0x20\\n ? __do_softirq+0x78/0x2ac\\n ? __do_softirq+0x60/0x2ac\\n __irq_exit_rcu+0xa1/0xc0\\n sysvec_call_function_single+0x72/0x90\\n \u003c/IRQ\u003e\\n \u003cTASK\u003e\\n asm_sysvec_call_function_single+0x16/0x20\\n RIP: 0010:_raw_spin_unlock_irq+0x14/0x30\\n RSP: 0018:ffffb253604cbd88 EFLAGS: 00000247\\n RAX: 000000000001960d RBX: 0000000000000002 RCX: ffff8cad2a064800\\n RDX: 000000008020001b RSI: 0000000000000001 RDI: ffff8cad5d39f66c\\n RBP: ffff8cad5d39f600 R08: 0000000000000001 R09: 0000000000000000\\n R10: ffff8caa443e0c00 R11: ffffb253604cbcd8 R12: ffff8cacb8682538\\n R13: 0000000000000005 R14: ffffb253604cbd90 R15: ffff8cad5d39f66c\\n cm_process_send_error+0x122/0x1d0 [ib_cm]\\n timeout_sends+0x1dd/0x270 [ib_core]\\n process_one_work+0x1e2/0x3b0\\n ? __pfx_worker_thread+0x10/0x10\\n worker_thread+0x50/0x3a0\\n ? __pfx_worker_thread+0x10/0x10\\n kthread+0xdd/0x100\\n ? __pfx_kthread+0x10/0x10\\n ret_from_fork+0x29/0x50\\n \u003c/TASK\u003e\\n\\nSimplified timeout handler by creating local list of timed out WRs\\nand invoke send handler post creating the list. The new method acquires/\\nreleases lock once to fetch the list and hence helps to reduce locking\\ncontetiong when processing higher no. of WRs\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: RDMA/mad: Mejorar el manejo de los WR con tiempo de espera agotado del agente mad El controlador de tiempo de espera actual del agente mad adquiere/libera el bloqueo mad_agent_priv para cada WR con tiempo de espera agotado. Esto provoca una fuerte contenci\u00f3n de bloqueo cuando se deben manejar una mayor cantidad de WR dentro del controlador de tiempo de espera. Esto conduce a un bloqueo suave con el siguiente seguimiento en algunos casos de uso donde se usa la ruta rdma-cm para establecer la conexi\u00f3n entre nodos pares Seguimiento: ----- ERROR: bloqueo suave: \u00a1CPU n.\u00ba 4 atascada durante 26 s! [kworker/u128:3:19767] CPU: 4 PID: 19767 Comm: kworker/u128:3 Kdump: cargado Contaminado: G OE ------- --- 5.14.0-427.13.1.el9_4.x86_64 #1 Nombre del hardware: Dell Inc. PowerEdge R740/01YM03, BIOS 2.4.8 26/11/2019 Cola de trabajo: ib_mad1 timeout_sends [ib_core] RIP: 0010:__do_softirq+0x78/0x2ac RSP: 0018:ffffb253449e4f98 EFLAGS: 00000246 RAX: 00000000ffffffff RBX: 0000000000000000 RCX: 000000000000001f RDX: 000000000000001d RSI: 000000003d1879ab RDI: fff363b66fd3a86b RBP: ffffb253604cbcd8 R08: 0000009065635f3b R09: 0000000000000000 R10: 0000000000000040 R11: ffffb253449e4ff8 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000040 FS: 000000000000000(0000) GS:ffff8caa1fc80000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fd9ec9db900 CR3: 0000000891934006 CR4: 00000000007706e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 00000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 00000000000000400 PKRU: 55555554 Seguimiento de llamadas: ? show_trace_log_lvl+0x1c4/0x2df ? show_trace_log_lvl+0x1c4/0x2df ? __irq_exit_rcu+0xa1/0xc0 ? watchdog_timer_fn+0x1b2/0x210 ? __pfx_watchdog_timer_fn+0x10/0x10 ? __hrtimer_run_queues+0x127/0x2c0 ? hrtimer_interrupt+0xfc/0x210 ? __sysvec_apic_timer_interrupt+0x5c/0x110 ? sysvec_apic_timer_interrupt+0x37/0x90 ? asm_sysvec_apic_timer_interrupt+0x16/0x20 ? __do_softirq+0x78/0x2ac ? asm_sysvec_call_function_single+0x16/0x20 RIP: 0010:_raw_spin_unlock_irq+0x14/0x30 RSP: 0018:ffffb253604cbd88 EFLAGS: 00000247 RAX: 000000000001960d RBX: 0000000000000002 RCX: ffff8cad2a064800 RDX: 000000008020001b RSI: 00000000000000001 RDI: ffff8cad5d39f66c RBP: ffff8cad5d39f600 R08: 0000000000000001 R09: 0000000000000000 R10: ffff8caa443e0c00 R11: ffffb253604cbcd8 R12: ffff8cacb8682538 R13: 0000000000000005 R14: ffffb253604cbd90 R15: ffff8cad5d39f66c cm_process_send_error+0x122/0x1d0 [ib_cm] timeout_sends+0x1dd/0x270 [ib_core] process_one_work+0x1e2/0x3b0 ? __pfx_worker_thread+0x10/0x10 worker_thread+0x50/0x3a0 ? __pfx_worker_thread+0x10/0x10 kthread+0xdd/0x100 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x29/0x50 Se simplific\u00f3 el controlador de tiempo de espera al crear una lista local de los WR que han expirado y al invocar el controlador de env\u00edo despu\u00e9s de crear la lista. El nuevo m\u00e9todo adquiere/libera el bloqueo una vez para obtener la lista y, por lo tanto, ayuda a reducir la contenci\u00f3n del bloqueo cuando se procesa una cantidad mayor de WR.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionEndExcluding\":\"5.10.227\",\"matchCriteriaId\":\"EB525A44-6338-4857-AD90-EA2860D1AD1F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.11\",\"versionEndExcluding\":\"5.15.168\",\"matchCriteriaId\":\"4D51C05D-455B-4D8D-89E7-A58E140B864C\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"6.1.113\",\"matchCriteriaId\":\"D01BD22E-ACD1-4618-9D01-6116570BE1EE\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.6.57\",\"matchCriteriaId\":\"05D83DB8-7465-4F88-AFB2-980011992AC1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.11.4\",\"matchCriteriaId\":\"AA84D336-CE9A-4535-B901-1AD77EC17C34\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/2a777679b8ccd09a9a65ea0716ef10365179caac\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/3e799fa463508abe7a738ce5d0f62a8dfd05262a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7022a517bf1ca37ef5a474365bcc5eafd345a13a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/713adaf0ecfc49405f6e5d9e409d984f628de818\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/a195a42dd25ca4f12489687065d00be64939409f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e80eadb3604a92d2d086e956b8b2692b699d4d0a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}" } }
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.