GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2022-50490 (GCVE-0-2022-50490)

Vulnerability from cvelistv5 – Published: 2025-10-04 15:43 – Updated: 2026-08-05 08:58
VLAI
Title
bpf: Propagate error from htab_lock_bucket() to userspace
Summary
In the Linux kernel, the following vulnerability has been resolved: bpf: Propagate error from htab_lock_bucket() to userspace In __htab_map_lookup_and_delete_batch() if htab_lock_bucket() returns -EBUSY, it will go to next bucket. Going to next bucket may not only skip the elements in current bucket silently, but also incur out-of-bound memory access or expose kernel memory to userspace if current bucket_cnt is greater than bucket_size or zero. Fixing it by stopping batch operation and returning -EBUSY when htab_lock_bucket() fails, and the application can retry or skip the busy batch as needed.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 20b6cc34ea74b6a84599c1f8a70f3315b56a1883 , < 0e13425104903970a5ede853082d3bbb4edec6f3 (git)
Affected: 20b6cc34ea74b6a84599c1f8a70f3315b56a1883 , < 6bfee6eb3d6b96ae730a542909dd22b5f9f50d58 (git)
Affected: 20b6cc34ea74b6a84599c1f8a70f3315b56a1883 , < 4f1f39a8f1ce1b24fee6852d7dcd704ce7c4334d (git)
Affected: 20b6cc34ea74b6a84599c1f8a70f3315b56a1883 , < 66a7a92e4d0d091e79148a4c6ec15d1da65f4280 (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.11
Unaffected: 0 , < 5.11 (semver)
Unaffected: 5.15.75 , ≤ 5.15.* (semver)
Unaffected: 5.19.17 , ≤ 5.19.* (semver)
Unaffected: 6.0.3 , ≤ 6.0.* (semver)
Unaffected: 6.1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "kernel/bpf/hashtab.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "0e13425104903970a5ede853082d3bbb4edec6f3",
              "status": "affected",
              "version": "20b6cc34ea74b6a84599c1f8a70f3315b56a1883",
              "versionType": "git"
            },
            {
              "lessThan": "6bfee6eb3d6b96ae730a542909dd22b5f9f50d58",
              "status": "affected",
              "version": "20b6cc34ea74b6a84599c1f8a70f3315b56a1883",
              "versionType": "git"
            },
            {
              "lessThan": "4f1f39a8f1ce1b24fee6852d7dcd704ce7c4334d",
              "status": "affected",
              "version": "20b6cc34ea74b6a84599c1f8a70f3315b56a1883",
              "versionType": "git"
            },
            {
              "lessThan": "66a7a92e4d0d091e79148a4c6ec15d1da65f4280",
              "status": "affected",
              "version": "20b6cc34ea74b6a84599c1f8a70f3315b56a1883",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "kernel/bpf/hashtab.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.11"
            },
            {
              "lessThan": "5.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.75",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.19.*",
              "status": "unaffected",
              "version": "5.19.17",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.0.*",
              "status": "unaffected",
              "version": "6.0.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.75",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.19.17",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.0.3",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Propagate error from htab_lock_bucket() to userspace\n\nIn __htab_map_lookup_and_delete_batch() if htab_lock_bucket() returns\n-EBUSY, it will go to next bucket. Going to next bucket may not only\nskip the elements in current bucket silently, but also incur\nout-of-bound memory access or expose kernel memory to userspace if\ncurrent bucket_cnt is greater than bucket_size or zero.\n\nFixing it by stopping batch operation and returning -EBUSY when\nhtab_lock_bucket() fails, and the application can retry or skip the busy\nbatch as needed."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached only via the bpf(2) syscall batch commands (BPF_MAP_LOOKUP_BATCH / BPF_MAP_LOOKUP_AND_DELETE_BATCH) on a hash map FD, which is a local syscall interface, not network-facing packet processing.\nAC:L - The attacker can drive both sides of the -EBUSY condition by racing map updates against a batch lookup on the same CPU (CONFIG_PREEMPT) or via map reentrancy, and syzkaller produced a reliable C reproducer for the slab-out-of-bounds read.\nPR:L - bpf_map_do_batch only requires a readable hash-map FD; BPF_MAP_TYPE_HASH maps are creatable by unprivileged users when unprivileged BPF is enabled, and map FDs are commonly shared with unprivileged processes, so CAP_SYS_ADMIN/CAP_BPF in the init namespace is not required.\nUI:N - Exploitation needs no victim action beyond the attacker issuing bpf syscalls against a map they can access.\nS:U - Impact stays within the local kernel/host authority; this is not a VM escape, IOMMU bypass, or other cross-boundary compromise.\nC:H - On htab_lock_bucket() -EBUSY, stale bucket_cnt causes copy_to_user of an oversized or never-filled keys/values buffer, yielding a slab out-of-bounds read that exposes adjacent kernel heap (and uninitialized kvmalloc contents) to userspace.\nI:N - The corrupted path only over-reads and copies kernel memory to userspace; the delete/update loops that would modify map state run only after a successful lock, so this bug does not provide a kernel write or control-flow hijack primitive.\nA:H - The OOB read was demonstrated as a KASAN slab-out-of-bounds fault that can panic under panic_on_warn, and a large attacker-controlled over-read can fault/oops the kernel, enabling local denial of service."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:58:56.510Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/0e13425104903970a5ede853082d3bbb4edec6f3"
        },
        {
          "url": "https://git.kernel.org/stable/c/6bfee6eb3d6b96ae730a542909dd22b5f9f50d58"
        },
        {
          "url": "https://git.kernel.org/stable/c/4f1f39a8f1ce1b24fee6852d7dcd704ce7c4334d"
        },
        {
          "url": "https://git.kernel.org/stable/c/66a7a92e4d0d091e79148a4c6ec15d1da65f4280"
        }
      ],
      "title": "bpf: Propagate error from htab_lock_bucket() to userspace",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-50490",
    "datePublished": "2025-10-04T15:43:43.790Z",
    "dateReserved": "2025-10-04T15:39:19.463Z",
    "dateUpdated": "2026-08-05T08:58:56.510Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2022-50490",
      "date": "2026-09-16",
      "epss": "0.00159",
      "percentile": "0.05487"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2022-50490\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-10-04T16:15:45.947\",\"lastModified\":\"2026-08-04T10:18:17.983\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nbpf: Propagate error from htab_lock_bucket() to userspace\\n\\nIn __htab_map_lookup_and_delete_batch() if htab_lock_bucket() returns\\n-EBUSY, it will go to next bucket. Going to next bucket may not only\\nskip the elements in current bucket silently, but also incur\\nout-of-bound memory access or expose kernel memory to userspace if\\ncurrent bucket_cnt is greater than bucket_size or zero.\\n\\nFixing it by stopping batch operation and returning -EBUSY when\\nhtab_lock_bucket() fails, and the application can retry or skip the busy\\nbatch as needed.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"kernel/bpf/hashtab.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"20b6cc34ea74b6a84599c1f8a70f3315b56a1883\",\"lessThan\":\"0e13425104903970a5ede853082d3bbb4edec6f3\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"20b6cc34ea74b6a84599c1f8a70f3315b56a1883\",\"lessThan\":\"6bfee6eb3d6b96ae730a542909dd22b5f9f50d58\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"20b6cc34ea74b6a84599c1f8a70f3315b56a1883\",\"lessThan\":\"4f1f39a8f1ce1b24fee6852d7dcd704ce7c4334d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"20b6cc34ea74b6a84599c1f8a70f3315b56a1883\",\"lessThan\":\"66a7a92e4d0d091e79148a4c6ec15d1da65f4280\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"kernel/bpf/hashtab.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"5.11\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"5.11\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.75\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.19.17\",\"lessThanOrEqual\":\"5.19.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.0.3\",\"lessThanOrEqual\":\"6.0.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1\",\"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:N/A:H\",\"baseScore\":7.1,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.2},{\"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:H/I:N/A:H\",\"baseScore\":7.1,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.2}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-125\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.11\",\"versionEndExcluding\":\"5.15.75\",\"matchCriteriaId\":\"6D945F46-F32F-4C09-8400-C3477E22A9FB\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"5.16\",\"versionEndExcluding\":\"5.19.17\",\"matchCriteriaId\":\"19B4C3A4-E5C3-41DC-BB14-BE72858E7D35\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.0\",\"versionEndExcluding\":\"6.0.3\",\"matchCriteriaId\":\"5BCD8201-B847-4442-B894-70D430128DEF\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/0e13425104903970a5ede853082d3bbb4edec6f3\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/4f1f39a8f1ce1b24fee6852d7dcd704ce7c4334d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/66a7a92e4d0d091e79148a4c6ec15d1da65f4280\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/6bfee6eb3d6b96ae730a542909dd22b5f9f50d58\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-04T19:37:42+00:00",
      "cve": "CVE-2022-50490",
      "id": "CVE-2022-50490",
      "initial_release_date": "2022-01-01T00:00:00+00:00",
      "product_status:known_affected": "156",
      "product_status:known_not_affected": "118",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: bpf: Propagate error from htab_lock_bucket() to userspace",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2022/cve-2022-50490.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-08-29T02:20:40Z",
      "cve": "CVE-2022-50490",
      "id": "CVE-2022-50490",
      "initial_release_date": "2025-10-05T02:57:49Z",
      "product_status:known_affected": "354",
      "product_status:known_not_affected": "395",
      "product_status:recommended": "219",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2022-50490",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2022-50490.json",
      "version": "35"
    }
  }
}



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…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…