cve-2023-52839
Vulnerability from cvelistv5
Published
2024-05-21 15:31
Modified
2024-12-19 08:26
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: drivers: perf: Do not broadcast to other cpus when starting a counter This command: $ perf record -e cycles:k -e instructions:k -c 10000 -m 64M dd if=/dev/zero of=/dev/null count=1000 gives rise to this kernel warning: [ 444.364395] WARNING: CPU: 0 PID: 104 at kernel/smp.c:775 smp_call_function_many_cond+0x42c/0x436 [ 444.364515] Modules linked in: [ 444.364657] CPU: 0 PID: 104 Comm: perf-exec Not tainted 6.6.0-rc6-00051-g391df82e8ec3-dirty #73 [ 444.364771] Hardware name: riscv-virtio,qemu (DT) [ 444.364868] epc : smp_call_function_many_cond+0x42c/0x436 [ 444.364917] ra : on_each_cpu_cond_mask+0x20/0x32 [ 444.364948] epc : ffffffff8009f9e0 ra : ffffffff8009fa5a sp : ff20000000003800 [ 444.364966] gp : ffffffff81500aa0 tp : ff60000002b83000 t0 : ff200000000038c0 [ 444.364982] t1 : ffffffff815021f0 t2 : 000000000000001f s0 : ff200000000038b0 [ 444.364998] s1 : ff60000002c54d98 a0 : ff60000002a73940 a1 : 0000000000000000 [ 444.365013] a2 : 0000000000000000 a3 : 0000000000000003 a4 : 0000000000000100 [ 444.365029] a5 : 0000000000010100 a6 : 0000000000f00000 a7 : 0000000000000000 [ 444.365044] s2 : 0000000000000000 s3 : ffffffffffffffff s4 : ff60000002c54d98 [ 444.365060] s5 : ffffffff81539610 s6 : ffffffff80c20c48 s7 : 0000000000000000 [ 444.365075] s8 : 0000000000000000 s9 : 0000000000000001 s10: 0000000000000001 [ 444.365090] s11: ffffffff80099394 t3 : 0000000000000003 t4 : 00000000eac0c6e6 [ 444.365104] t5 : 0000000400000000 t6 : ff60000002e010d0 [ 444.365120] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003 [ 444.365226] [<ffffffff8009f9e0>] smp_call_function_many_cond+0x42c/0x436 [ 444.365295] [<ffffffff8009fa5a>] on_each_cpu_cond_mask+0x20/0x32 [ 444.365311] [<ffffffff806e90dc>] pmu_sbi_ctr_start+0x7a/0xaa [ 444.365327] [<ffffffff806e880c>] riscv_pmu_start+0x48/0x66 [ 444.365339] [<ffffffff8012111a>] perf_adjust_freq_unthr_context+0x196/0x1ac [ 444.365356] [<ffffffff801237aa>] perf_event_task_tick+0x78/0x8c [ 444.365368] [<ffffffff8003faf4>] scheduler_tick+0xe6/0x25e [ 444.365383] [<ffffffff8008a042>] update_process_times+0x80/0x96 [ 444.365398] [<ffffffff800991ec>] tick_sched_handle+0x26/0x52 [ 444.365410] [<ffffffff800993e4>] tick_sched_timer+0x50/0x98 [ 444.365422] [<ffffffff8008a6aa>] __hrtimer_run_queues+0x126/0x18a [ 444.365433] [<ffffffff8008b350>] hrtimer_interrupt+0xce/0x1da [ 444.365444] [<ffffffff806cdc60>] riscv_timer_interrupt+0x30/0x3a [ 444.365457] [<ffffffff8006afa6>] handle_percpu_devid_irq+0x80/0x114 [ 444.365470] [<ffffffff80065b82>] generic_handle_domain_irq+0x1c/0x2a [ 444.365483] [<ffffffff8045faec>] riscv_intc_irq+0x2e/0x46 [ 444.365497] [<ffffffff808a9c62>] handle_riscv_irq+0x4a/0x74 [ 444.365521] [<ffffffff808aa760>] do_irq+0x7c/0x7e [ 444.365796] ---[ end trace 0000000000000000 ]--- That's because the fix in commit 3fec323339a4 ("drivers: perf: Fix panic in riscv SBI mmap support") was wrong since there is no need to broadcast to other cpus when starting a counter, that's only needed in mmap when the counters could have already been started on other cpus, so simply remove this broadcast.
Impacted products
Vendor Product Version
Linux Linux Version: 6.6
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T23:11:35.924Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/85be1a73fd298ed3fd060dfce97caef5f9928c57"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/61e3d993c8bd3e80f8f1363ed5e04f88ab531b72"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2023-52839",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:36:34.430107Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:32:54.398Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/perf/riscv_pmu_sbi.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "85be1a73fd298ed3fd060dfce97caef5f9928c57",
              "status": "affected",
              "version": "3fec323339a4a9801a54e8b282eb571965b67b23",
              "versionType": "git"
            },
            {
              "lessThan": "61e3d993c8bd3e80f8f1363ed5e04f88ab531b72",
              "status": "affected",
              "version": "3fec323339a4a9801a54e8b282eb571965b67b23",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/perf/riscv_pmu_sbi.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.6"
            },
            {
              "lessThan": "6.6",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.7",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrivers: perf: Do not broadcast to other cpus when starting a counter\n\nThis command:\n\n$ perf record -e cycles:k -e instructions:k -c 10000 -m 64M dd if=/dev/zero of=/dev/null count=1000\n\ngives rise to this kernel warning:\n\n[  444.364395] WARNING: CPU: 0 PID: 104 at kernel/smp.c:775 smp_call_function_many_cond+0x42c/0x436\n[  444.364515] Modules linked in:\n[  444.364657] CPU: 0 PID: 104 Comm: perf-exec Not tainted 6.6.0-rc6-00051-g391df82e8ec3-dirty #73\n[  444.364771] Hardware name: riscv-virtio,qemu (DT)\n[  444.364868] epc : smp_call_function_many_cond+0x42c/0x436\n[  444.364917]  ra : on_each_cpu_cond_mask+0x20/0x32\n[  444.364948] epc : ffffffff8009f9e0 ra : ffffffff8009fa5a sp : ff20000000003800\n[  444.364966]  gp : ffffffff81500aa0 tp : ff60000002b83000 t0 : ff200000000038c0\n[  444.364982]  t1 : ffffffff815021f0 t2 : 000000000000001f s0 : ff200000000038b0\n[  444.364998]  s1 : ff60000002c54d98 a0 : ff60000002a73940 a1 : 0000000000000000\n[  444.365013]  a2 : 0000000000000000 a3 : 0000000000000003 a4 : 0000000000000100\n[  444.365029]  a5 : 0000000000010100 a6 : 0000000000f00000 a7 : 0000000000000000\n[  444.365044]  s2 : 0000000000000000 s3 : ffffffffffffffff s4 : ff60000002c54d98\n[  444.365060]  s5 : ffffffff81539610 s6 : ffffffff80c20c48 s7 : 0000000000000000\n[  444.365075]  s8 : 0000000000000000 s9 : 0000000000000001 s10: 0000000000000001\n[  444.365090]  s11: ffffffff80099394 t3 : 0000000000000003 t4 : 00000000eac0c6e6\n[  444.365104]  t5 : 0000000400000000 t6 : ff60000002e010d0\n[  444.365120] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003\n[  444.365226] [\u003cffffffff8009f9e0\u003e] smp_call_function_many_cond+0x42c/0x436\n[  444.365295] [\u003cffffffff8009fa5a\u003e] on_each_cpu_cond_mask+0x20/0x32\n[  444.365311] [\u003cffffffff806e90dc\u003e] pmu_sbi_ctr_start+0x7a/0xaa\n[  444.365327] [\u003cffffffff806e880c\u003e] riscv_pmu_start+0x48/0x66\n[  444.365339] [\u003cffffffff8012111a\u003e] perf_adjust_freq_unthr_context+0x196/0x1ac\n[  444.365356] [\u003cffffffff801237aa\u003e] perf_event_task_tick+0x78/0x8c\n[  444.365368] [\u003cffffffff8003faf4\u003e] scheduler_tick+0xe6/0x25e\n[  444.365383] [\u003cffffffff8008a042\u003e] update_process_times+0x80/0x96\n[  444.365398] [\u003cffffffff800991ec\u003e] tick_sched_handle+0x26/0x52\n[  444.365410] [\u003cffffffff800993e4\u003e] tick_sched_timer+0x50/0x98\n[  444.365422] [\u003cffffffff8008a6aa\u003e] __hrtimer_run_queues+0x126/0x18a\n[  444.365433] [\u003cffffffff8008b350\u003e] hrtimer_interrupt+0xce/0x1da\n[  444.365444] [\u003cffffffff806cdc60\u003e] riscv_timer_interrupt+0x30/0x3a\n[  444.365457] [\u003cffffffff8006afa6\u003e] handle_percpu_devid_irq+0x80/0x114\n[  444.365470] [\u003cffffffff80065b82\u003e] generic_handle_domain_irq+0x1c/0x2a\n[  444.365483] [\u003cffffffff8045faec\u003e] riscv_intc_irq+0x2e/0x46\n[  444.365497] [\u003cffffffff808a9c62\u003e] handle_riscv_irq+0x4a/0x74\n[  444.365521] [\u003cffffffff808aa760\u003e] do_irq+0x7c/0x7e\n[  444.365796] ---[ end trace 0000000000000000 ]---\n\nThat\u0027s because the fix in commit 3fec323339a4 (\"drivers: perf: Fix panic\nin riscv SBI mmap support\") was wrong since there is no need to broadcast\nto other cpus when starting a counter, that\u0027s only needed in mmap when\nthe counters could have already been started on other cpus, so simply\nremove this broadcast."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2024-12-19T08:26:57.307Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/85be1a73fd298ed3fd060dfce97caef5f9928c57"
        },
        {
          "url": "https://git.kernel.org/stable/c/61e3d993c8bd3e80f8f1363ed5e04f88ab531b72"
        }
      ],
      "title": "drivers: perf: Do not broadcast to other cpus when starting a counter",
      "x_generator": {
        "engine": "bippy-5f407fcff5a0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-52839",
    "datePublished": "2024-05-21T15:31:39.196Z",
    "dateReserved": "2024-05-21T15:19:24.253Z",
    "dateUpdated": "2024-12-19T08:26:57.307Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2023-52839\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-21T16:15:21.310\",\"lastModified\":\"2024-11-21T08:40:41.790\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrivers: perf: Do not broadcast to other cpus when starting a counter\\n\\nThis command:\\n\\n$ perf record -e cycles:k -e instructions:k -c 10000 -m 64M dd if=/dev/zero of=/dev/null count=1000\\n\\ngives rise to this kernel warning:\\n\\n[  444.364395] WARNING: CPU: 0 PID: 104 at kernel/smp.c:775 smp_call_function_many_cond+0x42c/0x436\\n[  444.364515] Modules linked in:\\n[  444.364657] CPU: 0 PID: 104 Comm: perf-exec Not tainted 6.6.0-rc6-00051-g391df82e8ec3-dirty #73\\n[  444.364771] Hardware name: riscv-virtio,qemu (DT)\\n[  444.364868] epc : smp_call_function_many_cond+0x42c/0x436\\n[  444.364917]  ra : on_each_cpu_cond_mask+0x20/0x32\\n[  444.364948] epc : ffffffff8009f9e0 ra : ffffffff8009fa5a sp : ff20000000003800\\n[  444.364966]  gp : ffffffff81500aa0 tp : ff60000002b83000 t0 : ff200000000038c0\\n[  444.364982]  t1 : ffffffff815021f0 t2 : 000000000000001f s0 : ff200000000038b0\\n[  444.364998]  s1 : ff60000002c54d98 a0 : ff60000002a73940 a1 : 0000000000000000\\n[  444.365013]  a2 : 0000000000000000 a3 : 0000000000000003 a4 : 0000000000000100\\n[  444.365029]  a5 : 0000000000010100 a6 : 0000000000f00000 a7 : 0000000000000000\\n[  444.365044]  s2 : 0000000000000000 s3 : ffffffffffffffff s4 : ff60000002c54d98\\n[  444.365060]  s5 : ffffffff81539610 s6 : ffffffff80c20c48 s7 : 0000000000000000\\n[  444.365075]  s8 : 0000000000000000 s9 : 0000000000000001 s10: 0000000000000001\\n[  444.365090]  s11: ffffffff80099394 t3 : 0000000000000003 t4 : 00000000eac0c6e6\\n[  444.365104]  t5 : 0000000400000000 t6 : ff60000002e010d0\\n[  444.365120] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003\\n[  444.365226] [\u003cffffffff8009f9e0\u003e] smp_call_function_many_cond+0x42c/0x436\\n[  444.365295] [\u003cffffffff8009fa5a\u003e] on_each_cpu_cond_mask+0x20/0x32\\n[  444.365311] [\u003cffffffff806e90dc\u003e] pmu_sbi_ctr_start+0x7a/0xaa\\n[  444.365327] [\u003cffffffff806e880c\u003e] riscv_pmu_start+0x48/0x66\\n[  444.365339] [\u003cffffffff8012111a\u003e] perf_adjust_freq_unthr_context+0x196/0x1ac\\n[  444.365356] [\u003cffffffff801237aa\u003e] perf_event_task_tick+0x78/0x8c\\n[  444.365368] [\u003cffffffff8003faf4\u003e] scheduler_tick+0xe6/0x25e\\n[  444.365383] [\u003cffffffff8008a042\u003e] update_process_times+0x80/0x96\\n[  444.365398] [\u003cffffffff800991ec\u003e] tick_sched_handle+0x26/0x52\\n[  444.365410] [\u003cffffffff800993e4\u003e] tick_sched_timer+0x50/0x98\\n[  444.365422] [\u003cffffffff8008a6aa\u003e] __hrtimer_run_queues+0x126/0x18a\\n[  444.365433] [\u003cffffffff8008b350\u003e] hrtimer_interrupt+0xce/0x1da\\n[  444.365444] [\u003cffffffff806cdc60\u003e] riscv_timer_interrupt+0x30/0x3a\\n[  444.365457] [\u003cffffffff8006afa6\u003e] handle_percpu_devid_irq+0x80/0x114\\n[  444.365470] [\u003cffffffff80065b82\u003e] generic_handle_domain_irq+0x1c/0x2a\\n[  444.365483] [\u003cffffffff8045faec\u003e] riscv_intc_irq+0x2e/0x46\\n[  444.365497] [\u003cffffffff808a9c62\u003e] handle_riscv_irq+0x4a/0x74\\n[  444.365521] [\u003cffffffff808aa760\u003e] do_irq+0x7c/0x7e\\n[  444.365796] ---[ end trace 0000000000000000 ]---\\n\\nThat\u0027s because the fix in commit 3fec323339a4 (\\\"drivers: perf: Fix panic\\nin riscv SBI mmap support\\\") was wrong since there is no need to broadcast\\nto other cpus when starting a counter, that\u0027s only needed in mmap when\\nthe counters could have already been started on other cpus, so simply\\nremove this broadcast.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: controladores: perf: no transmitir a otras CPU al iniciar un contador. Este comando: $ perf record -e ciclos:k -e instrucciones:k -c 10000 -m 64M dd if =/dev/zero of=/dev/null count=1000 da lugar a esta advertencia del kernel: [444.364395] ADVERTENCIA: CPU: 0 PID: 104 en kernel/smp.c:775 smp_call_function_many_cond+0x42c/0x436 [444.364515] M\u00f3dulos vinculados en: [ 444.364657] CPU: 0 PID: 104 Comm: perf-exec No contaminado 6.6.0-rc6-00051-g391df82e8ec3-dirty #73 [ 444.364771] Nombre de hardware: riscv-virtio,qemu (DT) [ 444.364868] epc : smp_call_function_many_cond+0x42c/0x436 [ 444.364917] ra : on_each_cpu_cond_mask+0x20/0x32 [ 444.364948] epc : ffffffff8009f9e0 ra : ffffffff8009fa5a sp : ff20000000003800 [ 444.364966] gp : ffffffff81500aa0 tp : ff60000002b83000 t0 : ff200000000038c0 [ 444.364982] t1 : ffffffff815021f0 t2 : 000000000000001f s0 : ff200000000038b0 [444.364998] s1: ff60000002c54d98 a0: ff60000002a73940 a1: 0000000000000000 [444.365013] a2: 0000000000000000 a3 : 0000000000000003 a4 : 0000000000000100 [ 444.365029 ] a5 : 000000000010100 a6 : 0000000000f00000 a7 : 0000000000000000 [ 444.365044] s2: 0000000000000000 s3: ffffffffffffffff s4: ff60000002c54d98 [ 444.365060] s5: ffffffff81539610 s6: ffffffff80c20c48 s7: 0000000000000000 [444.365075] s8: 0000000000000000 s9: 0000000000000001 s10: 0000000000000001 [444.365090] s11: ffffffff80099394 t3: 0000000000000003 t4: 00000000eac0c6e6 [444.365104] t5: 0000000400000000 t6: ff60000002e010d0 [444.365120] estado: 0000000200000100 badaddr: 0000000000000000 causa: 0000000000000003 [444.365226] [] smp_call_function_many_cond+0x42c/0x436 [444.365295] [] on_each_cpu_cond_mask+0x20/0x32 [ 444.365311] [] pmu_sbi_ctr_start+0x7a/0xaa [ 444.365327] [\u0026lt; ffffffff806e880c\u0026gt;] riscv_pmu_start+0x48/0x66 [ 444.365339] [] perf_adjust_freq_unthr_context+0x196/0x1ac [ 444.365356] [] _task_tick+0x78/0x8c [ 444.365368] [] scheduler_tick+0xe6/0x25e [ 444.365383] [] update_process_times+0x80/0x96 [ 444.365398] [] tick_sched_handle+0x26/0x52 [ 444.365410] [] [ 444.365422] [] __hrtimer_run_queues+0x126/0x18a [ 444.365433] [] hrtimer_interrupt+0xce/0x1da [ 444.365444] [] riscv_timer_interrupt+0x30/0x3a [ 444.365457] [] cpu_devid_irq+0x80/0x114 [ 444.365470] [] generic_handle_domain_irq+0x1c/ 0x2a [ 444.365483] [] riscv_intc_irq+0x2e/0x46 [ 444.365497] [] handle_riscv_irq+0x4a/0x74 [ 444.365521 [] do_irq+0x7c/0x7e [ 444.365796] ---[ final de seguimiento 0000000000000000 ]--- Esto se debe a que la soluci\u00f3n en la confirmaci\u00f3n 3fec323339a4 (\\\"drivers: perf: Fix panic in riscv SBI mmap support\\\") era incorrecta ya que no hay necesidad de transmitir a otras CPU al iniciar un contador, eso solo es necesario en mmap cuando el Es posible que los contadores ya se hayan iniciado en otras CPU, as\u00ed que simplemente elimine esta transmisi\u00f3n.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/61e3d993c8bd3e80f8f1363ed5e04f88ab531b72\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/85be1a73fd298ed3fd060dfce97caef5f9928c57\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/61e3d993c8bd3e80f8f1363ed5e04f88ab531b72\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"},{\"url\":\"https://git.kernel.org/stable/c/85be1a73fd298ed3fd060dfce97caef5f9928c57\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

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.