CVE-2021-47317 (GCVE-0-2021-47317)

Vulnerability from cvelistv5 – Published: 2024-05-21 14:35 – Updated: 2026-08-05 08:47
VLAI
Title
powerpc/bpf: Fix detecting BPF atomic instructions
Summary
In the Linux kernel, the following vulnerability has been resolved: powerpc/bpf: Fix detecting BPF atomic instructions Commit 91c960b0056672 ("bpf: Rename BPF_XADD and prepare to encode other atomics in .imm") converted BPF_XADD to BPF_ATOMIC and added a way to distinguish instructions based on the immediate field. Existing JIT implementations were updated to check for the immediate field and to reject programs utilizing anything more than BPF_ADD (such as BPF_FETCH) in the immediate field. However, the check added to powerpc64 JIT did not look at the correct BPF instruction. Due to this, such programs would be accepted and incorrectly JIT'ed resulting in soft lockups, as seen with the atomic bounds test. Fix this by looking at the correct immediate value.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator (v2.0.3)
Assigner
Impacted products
Vendor Product Version
Linux Linux Affected: 91c960b0056672e74627776655c926388350fa30 , < 7284dab07e4d51d453cc42851fae9ec4fac6ef2f (git)
Affected: 91c960b0056672e74627776655c926388350fa30 , < 0d435b6d94b05dcfd836d758a63145aa566618e2 (git)
Affected: 91c960b0056672e74627776655c926388350fa30 , < 419ac821766cbdb9fd85872bb3f1a589df05c94c (git)
Create a notification for this product.
Linux Linux Affected: 5.12
Unaffected: 0 , < 5.12 (semver)
Unaffected: 5.12.19 , ≤ 5.12.* (semver)
Unaffected: 5.13.4 , ≤ 5.13.* (semver)
Unaffected: 5.14 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-04T05:32:08.533Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/7284dab07e4d51d453cc42851fae9ec4fac6ef2f"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/0d435b6d94b05dcfd836d758a63145aa566618e2"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/419ac821766cbdb9fd85872bb3f1a589df05c94c"
          }
        ],
        "title": "CVE Program Container"
      },
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2021-47317",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-09-10T15:39:12.722343Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-09-11T17:33:53.176Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/net/bpf_jit_comp64.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "7284dab07e4d51d453cc42851fae9ec4fac6ef2f",
              "status": "affected",
              "version": "91c960b0056672e74627776655c926388350fa30",
              "versionType": "git"
            },
            {
              "lessThan": "0d435b6d94b05dcfd836d758a63145aa566618e2",
              "status": "affected",
              "version": "91c960b0056672e74627776655c926388350fa30",
              "versionType": "git"
            },
            {
              "lessThan": "419ac821766cbdb9fd85872bb3f1a589df05c94c",
              "status": "affected",
              "version": "91c960b0056672e74627776655c926388350fa30",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/net/bpf_jit_comp64.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.12.*",
              "status": "unaffected",
              "version": "5.12.19",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.13.*",
              "status": "unaffected",
              "version": "5.13.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "5.14",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.12.19",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.13.4",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.14",
                  "versionStartIncluding": "5.12",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\npowerpc/bpf: Fix detecting BPF atomic instructions\n\nCommit 91c960b0056672 (\"bpf: Rename BPF_XADD and prepare to encode other\natomics in .imm\") converted BPF_XADD to BPF_ATOMIC and added a way to\ndistinguish instructions based on the immediate field. Existing JIT\nimplementations were updated to check for the immediate field and to\nreject programs utilizing anything more than BPF_ADD (such as BPF_FETCH)\nin the immediate field.\n\nHowever, the check added to powerpc64 JIT did not look at the correct\nBPF instruction. Due to this, such programs would be accepted and\nincorrectly JIT\u0027ed resulting in soft lockups, as seen with the atomic\nbounds test. Fix this by looking at the correct immediate value."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is in the powerpc64 eBPF JIT (bpf_jit_build_body) and is reached only by loading a BPF program via the local bpf() syscall (or classic SO_ATTACH_FILTER \u2192 eBPF migration), not by processing remote network input.\nAC:L - The attacker fully controls the BPF bytecode; arranging insn[0].imm == 0 so the broken insn-\u003eimm check accepts BPF_FETCH/other atomics and JITs them as plain ADD is deterministic, with no race or attacker-uncontrollable layout required.\nPR:L - Unprivileged users can load BPF_PROG_TYPE_SOCKET_FILTER when kernel.unprivileged_bpf_disabled=0 (upstream default for most of the 5.12\u20135.14 window before BPF_UNPRIV_DEFAULT_OFF), and even CAP_BPF-gated loading is Low (non-admin) privilege per kernel CNA BPF JIT scoring precedent.\nUI:N - The attacker loads and triggers their own crafted BPF program; no separate victim action is required.\nS:U - Impact stays in the host kernel\u2019s BPF/JIT authority (local DoS or privilege escalation) and does not cross a VM, IOMMU, or other security-boundary.\nC:H - Incorrect JIT of BPF_FETCH leaves the src register with the attacker-controlled addend while the verifier propagates stack bounds/constants into that register, so later map/memory indexing can perform out-of-bounds reads relative to verifier assumptions.\nI:H - The same verifier/JIT mismatch turns constrained offsets into attacker-controlled ones for stores, and unsupported atomics (AND/OR/XOR/XCHG/CMPXCHG) are emitted as ADD, yielding memory corruption and potential control-flow hijack primitives.\nA:H - As documented (atomic bounds test), JITing FETCH as ADD leaves a non-zero register so a verifier-proven-dead infinite loop runs in kernel context, causing soft lockups/hangs that are Availability High."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:47:15.685Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/7284dab07e4d51d453cc42851fae9ec4fac6ef2f"
        },
        {
          "url": "https://git.kernel.org/stable/c/0d435b6d94b05dcfd836d758a63145aa566618e2"
        },
        {
          "url": "https://git.kernel.org/stable/c/419ac821766cbdb9fd85872bb3f1a589df05c94c"
        }
      ],
      "title": "powerpc/bpf: Fix detecting BPF atomic instructions",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2021-47317",
    "datePublished": "2024-05-21T14:35:33.212Z",
    "dateReserved": "2024-05-21T14:28:16.973Z",
    "dateUpdated": "2026-08-05T08:47:15.685Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2021-47317",
      "date": "2026-08-09",
      "epss": "0.00186",
      "percentile": "0.08335"
    },
    "fkie_nvd": {
      "descriptions": "[{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\npowerpc/bpf: Fix detecting BPF atomic instructions\\n\\nCommit 91c960b0056672 (\\\"bpf: Rename BPF_XADD and prepare to encode other\\natomics in .imm\\\") converted BPF_XADD to BPF_ATOMIC and added a way to\\ndistinguish instructions based on the immediate field. Existing JIT\\nimplementations were updated to check for the immediate field and to\\nreject programs utilizing anything more than BPF_ADD (such as BPF_FETCH)\\nin the immediate field.\\n\\nHowever, the check added to powerpc64 JIT did not look at the correct\\nBPF instruction. Due to this, such programs would be accepted and\\nincorrectly JIT\u0027ed resulting in soft lockups, as seen with the atomic\\nbounds test. Fix this by looking at the correct immediate value.\"}, {\"lang\": \"es\", \"value\": \"En el kernel de Linux, se resolvi\\u00f3 la siguiente vulnerabilidad: powerpc/bpf: Correcci\\u00f3n de la detecci\\u00f3n de instrucciones at\\u00f3micas BPF. La confirmaci\\u00f3n 91c960b0056672 (\\\"bpf: Renombrar BPF_XADD y prepararse para codificar otros \\u00e1tomos en .imm\\\") convirti\\u00f3 BPF_XADD a BPF_ATOMIC y agreg\\u00f3 una forma de distinguir instrucciones basadas en el campo inmediato. Las implementaciones JIT existentes se actualizaron para verificar el campo inmediato y rechazar programas que utilicen algo m\\u00e1s que BPF_ADD (como BPF_FETCH) en el campo inmediato. Sin embargo, la verificaci\\u00f3n agregada a powerpc64 JIT no analiz\\u00f3 la instrucci\\u00f3n BPF correcta. Debido a esto, dichos programas ser\\u00edan aceptados y sometidos a JIT incorrectamente, lo que provocar\\u00eda bloqueos suaves, como se ve con la prueba de l\\u00edmites at\\u00f3micos. Solucione este problema observando el valor inmediato correcto.\"}]",
      "id": "CVE-2021-47317",
      "lastModified": "2024-11-21T06:35:52.117",
      "published": "2024-05-21T15:15:19.007",
      "references": "[{\"url\": \"https://git.kernel.org/stable/c/0d435b6d94b05dcfd836d758a63145aa566618e2\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/419ac821766cbdb9fd85872bb3f1a589df05c94c\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/7284dab07e4d51d453cc42851fae9ec4fac6ef2f\", \"source\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}, {\"url\": \"https://git.kernel.org/stable/c/0d435b6d94b05dcfd836d758a63145aa566618e2\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/419ac821766cbdb9fd85872bb3f1a589df05c94c\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}, {\"url\": \"https://git.kernel.org/stable/c/7284dab07e4d51d453cc42851fae9ec4fac6ef2f\", \"source\": \"af854a3a-2127-422b-91ae-364da2661108\"}]",
      "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "vulnStatus": "Awaiting Analysis"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2021-47317\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-05-21T15:15:19.007\",\"lastModified\":\"2026-08-04T10:16:57.980\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\npowerpc/bpf: Fix detecting BPF atomic instructions\\n\\nCommit 91c960b0056672 (\\\"bpf: Rename BPF_XADD and prepare to encode other\\natomics in .imm\\\") converted BPF_XADD to BPF_ATOMIC and added a way to\\ndistinguish instructions based on the immediate field. Existing JIT\\nimplementations were updated to check for the immediate field and to\\nreject programs utilizing anything more than BPF_ADD (such as BPF_FETCH)\\nin the immediate field.\\n\\nHowever, the check added to powerpc64 JIT did not look at the correct\\nBPF instruction. Due to this, such programs would be accepted and\\nincorrectly JIT\u0027ed resulting in soft lockups, as seen with the atomic\\nbounds test. Fix this by looking at the correct immediate value.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se resolvi\u00f3 la siguiente vulnerabilidad: powerpc/bpf: Correcci\u00f3n de la detecci\u00f3n de instrucciones at\u00f3micas BPF. La confirmaci\u00f3n 91c960b0056672 (\\\"bpf: Renombrar BPF_XADD y prepararse para codificar otros \u00e1tomos en .imm\\\") convirti\u00f3 BPF_XADD a BPF_ATOMIC y agreg\u00f3 una forma de distinguir instrucciones basadas en el campo inmediato. Las implementaciones JIT existentes se actualizaron para verificar el campo inmediato y rechazar programas que utilicen algo m\u00e1s que BPF_ADD (como BPF_FETCH) en el campo inmediato. Sin embargo, la verificaci\u00f3n agregada a powerpc64 JIT no analiz\u00f3 la instrucci\u00f3n BPF correcta. Debido a esto, dichos programas ser\u00edan aceptados y sometidos a JIT incorrectamente, lo que provocar\u00eda bloqueos suaves, como se ve con la prueba de l\u00edmites at\u00f3micos. Solucione este problema observando el valor inmediato correcto.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"arch/powerpc/net/bpf_jit_comp64.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"91c960b0056672e74627776655c926388350fa30\",\"lessThan\":\"7284dab07e4d51d453cc42851fae9ec4fac6ef2f\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"91c960b0056672e74627776655c926388350fa30\",\"lessThan\":\"0d435b6d94b05dcfd836d758a63145aa566618e2\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"91c960b0056672e74627776655c926388350fa30\",\"lessThan\":\"419ac821766cbdb9fd85872bb3f1a589df05c94c\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"arch/powerpc/net/bpf_jit_comp64.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.12\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.12\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.12.19\",\"lessThanOrEqual\":\"5.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.13.4\",\"lessThanOrEqual\":\"5.13.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.14\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9},{\"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:L\",\"baseScore\":3.3,\"baseSeverity\":\"LOW\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"LOW\"},\"exploitabilityScore\":1.8,\"impactScore\":1.4}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2024-09-10T15:39:12.722343Z\",\"id\":\"CVE-2021-47317\",\"options\":[{\"exploitation\":\"none\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-667\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.12\",\"versionEndExcluding\":\"5.12.19\",\"matchCriteriaId\":\"5033632E-A8AC-4311-894E-37B22F30BC28\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.13\",\"versionEndExcluding\":\"5.13.4\",\"matchCriteriaId\":\"F93FA3CC-0C79-410B-A7D7-245C2AA0723A\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0d435b6d94b05dcfd836d758a63145aa566618e2\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/419ac821766cbdb9fd85872bb3f1a589df05c94c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7284dab07e4d51d453cc42851fae9ec4fac6ef2f\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/0d435b6d94b05dcfd836d758a63145aa566618e2\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/419ac821766cbdb9fd85872bb3f1a589df05c94c\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7284dab07e4d51d453cc42851fae9ec4fac6ef2f\",\"source\":\"af854a3a-2127-422b-91ae-364da2661108\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-08-04T23:03:25+00:00",
      "cve": "CVE-2021-47317",
      "id": "CVE-2021-47317",
      "initial_release_date": "2021-01-01T00:00:00+00:00",
      "product_status:known_affected": "78",
      "product_status:known_not_affected": "120",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: powerpc/bpf: Fix detecting BPF atomic instructions",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2021/cve-2021-47317.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-07-25T17:34:18Z",
      "cve": "CVE-2021-47317",
      "id": "CVE-2021-47317",
      "initial_release_date": "2024-05-23T03:04:45Z",
      "product_status:known_not_affected": "330",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2021-47317",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2021-47317.json",
      "version": "19"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/7284dab07e4d51d453cc42851fae9ec4fac6ef2f\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/0d435b6d94b05dcfd836d758a63145aa566618e2\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/419ac821766cbdb9fd85872bb3f1a589df05c94c\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-04T05:32:08.533Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2021-47317\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-09-10T15:39:12.722343Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-09-11T12:42:19.424Z\"}}], \"cna\": {\"title\": \"powerpc/bpf: Fix detecting BPF atomic instructions\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.1\", \"baseScore\": 7.8, \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - The bug is in the powerpc64 eBPF JIT (bpf_jit_build_body) and is reached only by loading a BPF program via the local bpf() syscall (or classic SO_ATTACH_FILTER \\u2192 eBPF migration), not by processing remote network input.\\nAC:L - The attacker fully controls the BPF bytecode; arranging insn[0].imm == 0 so the broken insn-\u003eimm check accepts BPF_FETCH/other atomics and JITs them as plain ADD is deterministic, with no race or attacker-uncontrollable layout required.\\nPR:L - Unprivileged users can load BPF_PROG_TYPE_SOCKET_FILTER when kernel.unprivileged_bpf_disabled=0 (upstream default for most of the 5.12\\u20135.14 window before BPF_UNPRIV_DEFAULT_OFF), and even CAP_BPF-gated loading is Low (non-admin) privilege per kernel CNA BPF JIT scoring precedent.\\nUI:N - The attacker loads and triggers their own crafted BPF program; no separate victim action is required.\\nS:U - Impact stays in the host kernel\\u2019s BPF/JIT authority (local DoS or privilege escalation) and does not cross a VM, IOMMU, or other security-boundary.\\nC:H - Incorrect JIT of BPF_FETCH leaves the src register with the attacker-controlled addend while the verifier propagates stack bounds/constants into that register, so later map/memory indexing can perform out-of-bounds reads relative to verifier assumptions.\\nI:H - The same verifier/JIT mismatch turns constrained offsets into attacker-controlled ones for stores, and unsupported atomics (AND/OR/XOR/XCHG/CMPXCHG) are emitted as ADD, yielding memory corruption and potential control-flow hijack primitives.\\nA:H - As documented (atomic bounds test), JITing FETCH as ADD leaves a non-zero register so a verifier-proven-dead infinite loop runs in kernel context, causing soft lockups/hangs that are Availability High.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"91c960b0056672e74627776655c926388350fa30\", \"lessThan\": \"7284dab07e4d51d453cc42851fae9ec4fac6ef2f\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"91c960b0056672e74627776655c926388350fa30\", \"lessThan\": \"0d435b6d94b05dcfd836d758a63145aa566618e2\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"91c960b0056672e74627776655c926388350fa30\", \"lessThan\": \"419ac821766cbdb9fd85872bb3f1a589df05c94c\", \"versionType\": \"git\"}], \"programFiles\": [\"arch/powerpc/net/bpf_jit_comp64.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.12\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.12\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.12.19\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.12.*\"}, {\"status\": \"unaffected\", \"version\": \"5.13.4\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.13.*\"}, {\"status\": \"unaffected\", \"version\": \"5.14\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"arch/powerpc/net/bpf_jit_comp64.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/7284dab07e4d51d453cc42851fae9ec4fac6ef2f\"}, {\"url\": \"https://git.kernel.org/stable/c/0d435b6d94b05dcfd836d758a63145aa566618e2\"}, {\"url\": \"https://git.kernel.org/stable/c/419ac821766cbdb9fd85872bb3f1a589df05c94c\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\npowerpc/bpf: Fix detecting BPF atomic instructions\\n\\nCommit 91c960b0056672 (\\\"bpf: Rename BPF_XADD and prepare to encode other\\natomics in .imm\\\") converted BPF_XADD to BPF_ATOMIC and added a way to\\ndistinguish instructions based on the immediate field. Existing JIT\\nimplementations were updated to check for the immediate field and to\\nreject programs utilizing anything more than BPF_ADD (such as BPF_FETCH)\\nin the immediate field.\\n\\nHowever, the check added to powerpc64 JIT did not look at the correct\\nBPF instruction. Due to this, such programs would be accepted and\\nincorrectly JIT\u0027ed resulting in soft lockups, as seen with the atomic\\nbounds test. Fix this by looking at the correct immediate value.\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.12.19\", \"versionStartIncluding\": \"5.12\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.13.4\", \"versionStartIncluding\": \"5.12\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.14\", \"versionStartIncluding\": \"5.12\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T08:47:15.685Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2021-47317\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T08:47:15.685Z\", \"dateReserved\": \"2024-05-21T14:28:16.973Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-05-21T14:35:33.212Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…