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

CVE-2026-93174 (GCVE-0-2026-93174)

Vulnerability from cvelistv5 – Published: 2026-09-17 16:12 – Updated: 2026-09-17 16:12
VLAI
Title
bpf: Copy per-CPU map value padding in copy_map_value_long()
Summary
In the Linux kernel, the following vulnerability has been resolved: bpf: Copy per-CPU map value padding in copy_map_value_long() In kernel, per-CPU map elements are stored with round_up(map->value_size, 8) bytes. On UAPI lookup paths, it copies the rounded size for each CPU into a temporary buffer. However, copy_map_value_long() passes 'map->value_size' to bpf_obj_memcpy(). When the map has special fields, bpf_obj_memcpy() copies around those fields with memcpy(), and does not copy the tail padding between 'map->value_size' and round_up(map->value_size, 8). The temporary UAPI lookup buffers are allocated without __GFP_ZERO. As a result, when the per-CPU map's value size is not equal to round_up(map->value_size, 8), UAPI LOOKUP_ELEM and its variants can return stale heap contents from that padding to user space. The same issue applies to bpf_iter for per-CPU maps. Pass round_up(map->value_size, 8) to bpf_obj_memcpy() from copy_map_value_long(), so per-CPU maps both with and without special fields copy the entire per-CPU slot. Remove the now redundant round_up() from bpf_obj_memcpy()'s long_memcpy path.
Severity
No CVSS data available.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 448325199f574d33824dbf9121efb03558412966 , < 953e85da53541a8dc3e7ad4e8532f29a34a32eae (git)
Affected: 448325199f574d33824dbf9121efb03558412966 , < 003bf840ed3326bd01396ce7d5b431cef0d371e7 (git)
Affected: 448325199f574d33824dbf9121efb03558412966 , < 5e9f69829835521aa2942d1d14bd0990fbc6991e (git)
Affected: 448325199f574d33824dbf9121efb03558412966 , < ff3f22ed8d2f350b4c24ee26e33daea5f08d58ef (git)
Affected: 448325199f574d33824dbf9121efb03558412966 , < 7cf9cd98cf6f0df3befc167ca6b54c07014d71de (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.1
Unaffected: 0 , < 6.1 (semver)
Unaffected: 6.6.157 , ≤ 6.6.* (semver)
Unaffected: 6.12.110 , ≤ 6.12.* (semver)
Unaffected: 6.18.52 , ≤ 6.18.* (semver)
Unaffected: 7.2.6 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "include/linux/bpf.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "953e85da53541a8dc3e7ad4e8532f29a34a32eae",
              "status": "affected",
              "version": "448325199f574d33824dbf9121efb03558412966",
              "versionType": "git"
            },
            {
              "lessThan": "003bf840ed3326bd01396ce7d5b431cef0d371e7",
              "status": "affected",
              "version": "448325199f574d33824dbf9121efb03558412966",
              "versionType": "git"
            },
            {
              "lessThan": "5e9f69829835521aa2942d1d14bd0990fbc6991e",
              "status": "affected",
              "version": "448325199f574d33824dbf9121efb03558412966",
              "versionType": "git"
            },
            {
              "lessThan": "ff3f22ed8d2f350b4c24ee26e33daea5f08d58ef",
              "status": "affected",
              "version": "448325199f574d33824dbf9121efb03558412966",
              "versionType": "git"
            },
            {
              "lessThan": "7cf9cd98cf6f0df3befc167ca6b54c07014d71de",
              "status": "affected",
              "version": "448325199f574d33824dbf9121efb03558412966",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "include/linux/bpf.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.1"
            },
            {
              "lessThan": "6.1",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.110",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.52",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.157",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.110",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.52",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.6",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "6.1",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Copy per-CPU map value padding in copy_map_value_long()\n\nIn kernel, per-CPU map elements are stored with\nround_up(map-\u003evalue_size, 8) bytes. On UAPI lookup paths, it copies the\nrounded size for each CPU into a temporary buffer.\n\nHowever, copy_map_value_long() passes \u0027map-\u003evalue_size\u0027 to\nbpf_obj_memcpy(). When the map has special fields, bpf_obj_memcpy() copies\naround those fields with memcpy(), and does not copy the tail padding\nbetween \u0027map-\u003evalue_size\u0027 and round_up(map-\u003evalue_size, 8).\n\nThe temporary UAPI lookup buffers are allocated without __GFP_ZERO. As a\nresult, when the per-CPU map\u0027s value size is not equal to\nround_up(map-\u003evalue_size, 8), UAPI LOOKUP_ELEM and its variants can return\nstale heap contents from that padding to user space. The same issue\napplies to bpf_iter for per-CPU maps.\n\nPass round_up(map-\u003evalue_size, 8) to bpf_obj_memcpy() from\ncopy_map_value_long(), so per-CPU maps both with and without special\nfields copy the entire per-CPU slot. Remove the now redundant round_up()\nfrom bpf_obj_memcpy()\u0027s long_memcpy path."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-17T16:12:03.946Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/953e85da53541a8dc3e7ad4e8532f29a34a32eae"
        },
        {
          "url": "https://git.kernel.org/stable/c/003bf840ed3326bd01396ce7d5b431cef0d371e7"
        },
        {
          "url": "https://git.kernel.org/stable/c/5e9f69829835521aa2942d1d14bd0990fbc6991e"
        },
        {
          "url": "https://git.kernel.org/stable/c/ff3f22ed8d2f350b4c24ee26e33daea5f08d58ef"
        },
        {
          "url": "https://git.kernel.org/stable/c/7cf9cd98cf6f0df3befc167ca6b54c07014d71de"
        }
      ],
      "title": "bpf: Copy per-CPU map value padding in copy_map_value_long()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-93174",
    "datePublished": "2026-09-17T16:12:03.946Z",
    "dateReserved": "2026-09-17T16:02:15.090Z",
    "dateUpdated": "2026-09-17T16:12:03.946Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-93174\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-09-17T17:18:13.167\",\"lastModified\":\"2026-09-17T17:18:13.167\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nbpf: Copy per-CPU map value padding in copy_map_value_long()\\n\\nIn kernel, per-CPU map elements are stored with\\nround_up(map-\u003evalue_size, 8) bytes. On UAPI lookup paths, it copies the\\nrounded size for each CPU into a temporary buffer.\\n\\nHowever, copy_map_value_long() passes \u0027map-\u003evalue_size\u0027 to\\nbpf_obj_memcpy(). When the map has special fields, bpf_obj_memcpy() copies\\naround those fields with memcpy(), and does not copy the tail padding\\nbetween \u0027map-\u003evalue_size\u0027 and round_up(map-\u003evalue_size, 8).\\n\\nThe temporary UAPI lookup buffers are allocated without __GFP_ZERO. As a\\nresult, when the per-CPU map\u0027s value size is not equal to\\nround_up(map-\u003evalue_size, 8), UAPI LOOKUP_ELEM and its variants can return\\nstale heap contents from that padding to user space. The same issue\\napplies to bpf_iter for per-CPU maps.\\n\\nPass round_up(map-\u003evalue_size, 8) to bpf_obj_memcpy() from\\ncopy_map_value_long(), so per-CPU maps both with and without special\\nfields copy the entire per-CPU slot. Remove the now redundant round_up()\\nfrom bpf_obj_memcpy()\u0027s long_memcpy path.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"include/linux/bpf.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"448325199f574d33824dbf9121efb03558412966\",\"lessThan\":\"953e85da53541a8dc3e7ad4e8532f29a34a32eae\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"448325199f574d33824dbf9121efb03558412966\",\"lessThan\":\"003bf840ed3326bd01396ce7d5b431cef0d371e7\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"448325199f574d33824dbf9121efb03558412966\",\"lessThan\":\"5e9f69829835521aa2942d1d14bd0990fbc6991e\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"448325199f574d33824dbf9121efb03558412966\",\"lessThan\":\"ff3f22ed8d2f350b4c24ee26e33daea5f08d58ef\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"448325199f574d33824dbf9121efb03558412966\",\"lessThan\":\"7cf9cd98cf6f0df3befc167ca6b54c07014d71de\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"include/linux/bpf.h\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.1\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.1\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.157\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.110\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.52\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2.6\",\"lessThanOrEqual\":\"7.2.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.3-rc1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/003bf840ed3326bd01396ce7d5b431cef0d371e7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/5e9f69829835521aa2942d1d14bd0990fbc6991e\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/7cf9cd98cf6f0df3befc167ca6b54c07014d71de\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/953e85da53541a8dc3e7ad4e8532f29a34a32eae\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/ff3f22ed8d2f350b4c24ee26e33daea5f08d58ef\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}



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…