CVE-2022-50225 (GCVE-0-2022-50225)
Vulnerability from cvelistv5
Published
2025-06-18 11:03
Modified
2025-06-18 11:03
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: riscv:uprobe fix SR_SPIE set/clear handling In riscv the process of uprobe going to clear spie before exec the origin insn,and set spie after that.But When access the page which origin insn has been placed a page fault may happen and irq was disabled in arch_uprobe_pre_xol function,It cause a WARN as follows. There is no need to clear/set spie in arch_uprobe_pre/post/abort_xol. We can just remove it. [ 31.684157] BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1488 [ 31.684677] in_atomic(): 0, irqs_disabled(): 1, non_block: 0, pid: 76, name: work [ 31.684929] preempt_count: 0, expected: 0 [ 31.685969] CPU: 2 PID: 76 Comm: work Tainted: G [ 31.686542] Hardware name: riscv-virtio,qemu (DT) [ 31.686797] Call Trace: [ 31.687053] [<ffffffff80006442>] dump_backtrace+0x30/0x38 [ 31.687699] [<ffffffff80812118>] show_stack+0x40/0x4c [ 31.688141] [<ffffffff8081817a>] dump_stack_lvl+0x44/0x5c [ 31.688396] [<ffffffff808181aa>] dump_stack+0x18/0x20 [ 31.688653] [<ffffffff8003e454>] __might_resched+0x114/0x122 [ 31.688948] [<ffffffff8003e4b2>] __might_sleep+0x50/0x7a [ 31.689435] [<ffffffff80822676>] down_read+0x30/0x130 [ 31.689728] [<ffffffff8000b650>] do_page_fault+0x166/x446 [ 31.689997] [<ffffffff80003c0c>] ret_from_exception+0x0/0xc
Impacted products
Vendor Product Version
Linux Linux Version: 74784081aac8a0f3636965fc230e2d3b7cc123c6
Version: 74784081aac8a0f3636965fc230e2d3b7cc123c6
Version: 74784081aac8a0f3636965fc230e2d3b7cc123c6
Version: 74784081aac8a0f3636965fc230e2d3b7cc123c6
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/riscv/kernel/probes/uprobes.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "c71e000db8536d27ec410abb3e314896a78b4f19",
              "status": "affected",
              "version": "74784081aac8a0f3636965fc230e2d3b7cc123c6",
              "versionType": "git"
            },
            {
              "lessThan": "3811d51778900064d27d8c9a98f73410fb3b471d",
              "status": "affected",
              "version": "74784081aac8a0f3636965fc230e2d3b7cc123c6",
              "versionType": "git"
            },
            {
              "lessThan": "73fc099eaefd9a92c83b6c07dad066411fd5a192",
              "status": "affected",
              "version": "74784081aac8a0f3636965fc230e2d3b7cc123c6",
              "versionType": "git"
            },
            {
              "lessThan": "3dbe5829408bc1586f75b4667ef60e5aab0209c7",
              "status": "affected",
              "version": "74784081aac8a0f3636965fc230e2d3b7cc123c6",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/riscv/kernel/probes/uprobes.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.12"
            },
            {
              "lessThan": "5.12",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.61",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.18.*",
              "status": "unaffected",
              "version": "5.18.18",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.19.*",
              "status": "unaffected",
              "version": "5.19.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.61",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.18.18",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.19.2",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.0",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nriscv:uprobe fix SR_SPIE set/clear handling\n\nIn riscv the process of uprobe going to clear spie before exec\nthe origin insn,and set spie after that.But When access the page\nwhich origin insn has been placed a page fault may happen and\nirq was disabled in arch_uprobe_pre_xol function,It cause a WARN\nas follows.\nThere is no need to clear/set spie in arch_uprobe_pre/post/abort_xol.\nWe can just remove it.\n\n[   31.684157] BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1488\n[   31.684677] in_atomic(): 0, irqs_disabled(): 1, non_block: 0, pid: 76, name: work\n[   31.684929] preempt_count: 0, expected: 0\n[   31.685969] CPU: 2 PID: 76 Comm: work Tainted: G\n[   31.686542] Hardware name: riscv-virtio,qemu (DT)\n[   31.686797] Call Trace:\n[   31.687053] [\u003cffffffff80006442\u003e] dump_backtrace+0x30/0x38\n[   31.687699] [\u003cffffffff80812118\u003e] show_stack+0x40/0x4c\n[   31.688141] [\u003cffffffff8081817a\u003e] dump_stack_lvl+0x44/0x5c\n[   31.688396] [\u003cffffffff808181aa\u003e] dump_stack+0x18/0x20\n[   31.688653] [\u003cffffffff8003e454\u003e] __might_resched+0x114/0x122\n[   31.688948] [\u003cffffffff8003e4b2\u003e] __might_sleep+0x50/0x7a\n[   31.689435] [\u003cffffffff80822676\u003e] down_read+0x30/0x130\n[   31.689728] [\u003cffffffff8000b650\u003e] do_page_fault+0x166/x446\n[   31.689997] [\u003cffffffff80003c0c\u003e] ret_from_exception+0x0/0xc"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2025-06-18T11:03:58.643Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/c71e000db8536d27ec410abb3e314896a78b4f19"
        },
        {
          "url": "https://git.kernel.org/stable/c/3811d51778900064d27d8c9a98f73410fb3b471d"
        },
        {
          "url": "https://git.kernel.org/stable/c/73fc099eaefd9a92c83b6c07dad066411fd5a192"
        },
        {
          "url": "https://git.kernel.org/stable/c/3dbe5829408bc1586f75b4667ef60e5aab0209c7"
        }
      ],
      "title": "riscv:uprobe fix SR_SPIE set/clear handling",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-50225",
    "datePublished": "2025-06-18T11:03:58.643Z",
    "dateReserved": "2025-06-18T10:57:27.431Z",
    "dateUpdated": "2025-06-18T11:03:58.643Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2022-50225\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-06-18T11:15:53.517\",\"lastModified\":\"2025-06-18T13:47:40.833\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nriscv:uprobe fix SR_SPIE set/clear handling\\n\\nIn riscv the process of uprobe going to clear spie before exec\\nthe origin insn,and set spie after that.But When access the page\\nwhich origin insn has been placed a page fault may happen and\\nirq was disabled in arch_uprobe_pre_xol function,It cause a WARN\\nas follows.\\nThere is no need to clear/set spie in arch_uprobe_pre/post/abort_xol.\\nWe can just remove it.\\n\\n[   31.684157] BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:1488\\n[   31.684677] in_atomic(): 0, irqs_disabled(): 1, non_block: 0, pid: 76, name: work\\n[   31.684929] preempt_count: 0, expected: 0\\n[   31.685969] CPU: 2 PID: 76 Comm: work Tainted: G\\n[   31.686542] Hardware name: riscv-virtio,qemu (DT)\\n[   31.686797] Call Trace:\\n[   31.687053] [\u003cffffffff80006442\u003e] dump_backtrace+0x30/0x38\\n[   31.687699] [\u003cffffffff80812118\u003e] show_stack+0x40/0x4c\\n[   31.688141] [\u003cffffffff8081817a\u003e] dump_stack_lvl+0x44/0x5c\\n[   31.688396] [\u003cffffffff808181aa\u003e] dump_stack+0x18/0x20\\n[   31.688653] [\u003cffffffff8003e454\u003e] __might_resched+0x114/0x122\\n[   31.688948] [\u003cffffffff8003e4b2\u003e] __might_sleep+0x50/0x7a\\n[   31.689435] [\u003cffffffff80822676\u003e] down_read+0x30/0x130\\n[   31.689728] [\u003cffffffff8000b650\u003e] do_page_fault+0x166/x446\\n[   31.689997] [\u003cffffffff80003c0c\u003e] ret_from_exception+0x0/0xc\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: riscv:uprobe fix SR_SPIE set/clear management. En riscv, el proceso de uprobe borra spie antes de ejecutar la instrucci\u00f3n de origen y la configura despu\u00e9s. Sin embargo, al acceder a la p\u00e1gina donde se ha colocado la instrucci\u00f3n de origen, puede producirse un fallo de p\u00e1gina y la funci\u00f3n irq se ha deshabilitado en arch_uprobe_pre_xol. Esto genera una advertencia como la siguiente. No es necesario borrar/configurar spie en arch_uprobe_pre/post/abort_xol. Simplemente podemos eliminarlo. [ 31.684157] ERROR: funci\u00f3n de suspensi\u00f3n llamada desde un contexto no v\u00e1lido en kernel/locking/rwsem.c:1488 [ 31.684677] in_atomic(): 0, irqs_disabled(): 1, non_block: 0, pid: 76, name: work [ 31.684929] preempt_count: 0, expected: 0 [ 31.685969] CPU: 2 PID: 76 Comm: work Tainted: G [ 31.686542] Nombre del hardware: riscv-virtio,qemu (DT) [ 31.686797] Rastreo de llamadas: [ 31.687053] [] dump_backtrace+0x30/0x38 [ 31.687699] [] show_stack+0x40/0x4c [ 31.688141] [] dump_stack_lvl+0x44/0x5c [ 31.688396] [] dump_stack+0x18/0x20 [ 31.688653] [] __might_resched+0x114/0x122 [ 31.688948] [] __might_sleep+0x50/0x7a [ 31.689435] [] down_read+0x30/0x130 [ 31.689728] [] do_page_fault+0x166/x446 [ 31.689997] [] ret_from_exception+0x0/0xc \"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/3811d51778900064d27d8c9a98f73410fb3b471d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/3dbe5829408bc1586f75b4667ef60e5aab0209c7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/73fc099eaefd9a92c83b6c07dad066411fd5a192\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/c71e000db8536d27ec410abb3e314896a78b4f19\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


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.


Loading…

Loading…