CVE-2023-54086 (GCVE-0-2023-54086)

Vulnerability from cvelistv5 – Published: 2025-12-24 13:06 – Updated: 2026-05-23 15:32
VLAI
Title
bpf: Add preempt_count_{sub,add} into btf id deny list
Summary
In the Linux kernel, the following vulnerability has been resolved: bpf: Add preempt_count_{sub,add} into btf id deny list The recursion check in __bpf_prog_enter* and __bpf_prog_exit* leave preempt_count_{sub,add} unprotected. When attaching trampoline to them we get panic as follows, [ 867.843050] BUG: TASK stack guard page was hit at 0000000009d325cf (stack is 0000000046a46a15..00000000537e7b28) [ 867.843064] stack guard page: 0000 [#1] PREEMPT SMP NOPTI [ 867.843067] CPU: 8 PID: 11009 Comm: trace Kdump: loaded Not tainted 6.2.0+ #4 [ 867.843100] Call Trace: [ 867.843101] <TASK> [ 867.843104] asm_exc_int3+0x3a/0x40 [ 867.843108] RIP: 0010:preempt_count_sub+0x1/0xa0 [ 867.843135] __bpf_prog_enter_recur+0x17/0x90 [ 867.843148] bpf_trampoline_6442468108_0+0x2e/0x1000 [ 867.843154] ? preempt_count_sub+0x1/0xa0 [ 867.843157] preempt_count_sub+0x5/0xa0 [ 867.843159] ? migrate_enable+0xac/0xf0 [ 867.843164] __bpf_prog_exit_recur+0x2d/0x40 [ 867.843168] bpf_trampoline_6442468108_0+0x55/0x1000 ... [ 867.843788] preempt_count_sub+0x5/0xa0 [ 867.843793] ? migrate_enable+0xac/0xf0 [ 867.843829] __bpf_prog_exit_recur+0x2d/0x40 [ 867.843837] BUG: IRQ stack guard page was hit at 0000000099bd8228 (stack is 00000000b23e2bc4..000000006d95af35) [ 867.843841] BUG: IRQ stack guard page was hit at 000000005ae07924 (stack is 00000000ffd69623..0000000014eb594c) [ 867.843843] BUG: IRQ stack guard page was hit at 00000000028320f0 (stack is 00000000034b6438..0000000078d1bcec) [ 867.843842] bpf_trampoline_6442468108_0+0x55/0x1000 ... That is because in __bpf_prog_exit_recur, the preempt_count_{sub,add} are called after prog->active is decreased. Fixing this by adding these two functions into btf ids deny list.
Severity
No CVSS data available.
Impacted products
Vendor Product Version
Linux Linux Affected: 35e3815fa8102fab4dee75f3547472c66581125d , < 095018267c87b8bfbbb12eeb1c0ebf2359e1782c (git)
Affected: 35e3815fa8102fab4dee75f3547472c66581125d , < 60039bf72f81638baa28652a11a68e9b0b7b5b2d (git)
Affected: 35e3815fa8102fab4dee75f3547472c66581125d , < b9168d41b83d182f34ba927ee822edaee18d5fc8 (git)
Affected: 35e3815fa8102fab4dee75f3547472c66581125d , < c11bd046485d7bf1ca200db0e7d0bdc4bafdd395 (git)
Affected: f5e770c0c60ab8812574a2e0d163b0efa816a825 (git)
Affected: 5.12.11 , < 5.13 (semver)
Create a notification for this product.
Linux Linux Affected: 5.13
Unaffected: 0 , < 5.13 (semver)
Unaffected: 5.15.113 , ≤ 5.15.* (semver)
Unaffected: 6.1.30 , ≤ 6.1.* (semver)
Unaffected: 6.3.4 , ≤ 6.3.* (semver)
Unaffected: 6.4 , ≤ * (original_commit_for_fix)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "kernel/bpf/verifier.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "095018267c87b8bfbbb12eeb1c0ebf2359e1782c",
              "status": "affected",
              "version": "35e3815fa8102fab4dee75f3547472c66581125d",
              "versionType": "git"
            },
            {
              "lessThan": "60039bf72f81638baa28652a11a68e9b0b7b5b2d",
              "status": "affected",
              "version": "35e3815fa8102fab4dee75f3547472c66581125d",
              "versionType": "git"
            },
            {
              "lessThan": "b9168d41b83d182f34ba927ee822edaee18d5fc8",
              "status": "affected",
              "version": "35e3815fa8102fab4dee75f3547472c66581125d",
              "versionType": "git"
            },
            {
              "lessThan": "c11bd046485d7bf1ca200db0e7d0bdc4bafdd395",
              "status": "affected",
              "version": "35e3815fa8102fab4dee75f3547472c66581125d",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "f5e770c0c60ab8812574a2e0d163b0efa816a825",
              "versionType": "git"
            },
            {
              "lessThan": "5.13",
              "status": "affected",
              "version": "5.12.11",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "kernel/bpf/verifier.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.13"
            },
            {
              "lessThan": "5.13",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.113",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.30",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.3.*",
              "status": "unaffected",
              "version": "6.3.4",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.4",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.113",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.30",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.3.4",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.4",
                  "versionStartIncluding": "5.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "5.12.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Add preempt_count_{sub,add} into btf id deny list\n\nThe recursion check in __bpf_prog_enter* and __bpf_prog_exit*\nleave preempt_count_{sub,add} unprotected. When attaching trampoline to\nthem we get panic as follows,\n\n[  867.843050] BUG: TASK stack guard page was hit at 0000000009d325cf (stack is 0000000046a46a15..00000000537e7b28)\n[  867.843064] stack guard page: 0000 [#1] PREEMPT SMP NOPTI\n[  867.843067] CPU: 8 PID: 11009 Comm: trace Kdump: loaded Not tainted 6.2.0+ #4\n[  867.843100] Call Trace:\n[  867.843101]  \u003cTASK\u003e\n[  867.843104]  asm_exc_int3+0x3a/0x40\n[  867.843108] RIP: 0010:preempt_count_sub+0x1/0xa0\n[  867.843135]  __bpf_prog_enter_recur+0x17/0x90\n[  867.843148]  bpf_trampoline_6442468108_0+0x2e/0x1000\n[  867.843154]  ? preempt_count_sub+0x1/0xa0\n[  867.843157]  preempt_count_sub+0x5/0xa0\n[  867.843159]  ? migrate_enable+0xac/0xf0\n[  867.843164]  __bpf_prog_exit_recur+0x2d/0x40\n[  867.843168]  bpf_trampoline_6442468108_0+0x55/0x1000\n...\n[  867.843788]  preempt_count_sub+0x5/0xa0\n[  867.843793]  ? migrate_enable+0xac/0xf0\n[  867.843829]  __bpf_prog_exit_recur+0x2d/0x40\n[  867.843837] BUG: IRQ stack guard page was hit at 0000000099bd8228 (stack is 00000000b23e2bc4..000000006d95af35)\n[  867.843841] BUG: IRQ stack guard page was hit at 000000005ae07924 (stack is 00000000ffd69623..0000000014eb594c)\n[  867.843843] BUG: IRQ stack guard page was hit at 00000000028320f0 (stack is 00000000034b6438..0000000078d1bcec)\n[  867.843842]  bpf_trampoline_6442468108_0+0x55/0x1000\n...\n\nThat is because in __bpf_prog_exit_recur, the preempt_count_{sub,add} are\ncalled after prog-\u003eactive is decreased.\n\nFixing this by adding these two functions into btf ids deny list."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-23T15:32:32.011Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/095018267c87b8bfbbb12eeb1c0ebf2359e1782c"
        },
        {
          "url": "https://git.kernel.org/stable/c/60039bf72f81638baa28652a11a68e9b0b7b5b2d"
        },
        {
          "url": "https://git.kernel.org/stable/c/b9168d41b83d182f34ba927ee822edaee18d5fc8"
        },
        {
          "url": "https://git.kernel.org/stable/c/c11bd046485d7bf1ca200db0e7d0bdc4bafdd395"
        }
      ],
      "title": "bpf: Add preempt_count_{sub,add} into btf id deny list",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2023-54086",
    "datePublished": "2025-12-24T13:06:16.857Z",
    "dateReserved": "2025-12-24T13:02:52.515Z",
    "dateUpdated": "2026-05-23T15:32:32.011Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2023-54086",
      "date": "2026-10-02",
      "epss": "0.00208",
      "percentile": "0.09893"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "kernel/bpf/verifier.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "095018267c87b8bfbbb12eeb1c0ebf2359e1782c",
                    "status": "affected",
                    "version": "35e3815fa8102fab4dee75f3547472c66581125d",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "60039bf72f81638baa28652a11a68e9b0b7b5b2d",
                    "status": "affected",
                    "version": "35e3815fa8102fab4dee75f3547472c66581125d",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "b9168d41b83d182f34ba927ee822edaee18d5fc8",
                    "status": "affected",
                    "version": "35e3815fa8102fab4dee75f3547472c66581125d",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "c11bd046485d7bf1ca200db0e7d0bdc4bafdd395",
                    "status": "affected",
                    "version": "35e3815fa8102fab4dee75f3547472c66581125d",
                    "versionType": "git"
                  },
                  {
                    "status": "affected",
                    "version": "f5e770c0c60ab8812574a2e0d163b0efa816a825",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "5.13",
                    "status": "affected",
                    "version": "5.12.11",
                    "versionType": "semver"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "kernel/bpf/verifier.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.13"
                  },
                  {
                    "lessThan": "5.13",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.15.*",
                    "status": "unaffected",
                    "version": "5.15.113",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.30",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.3.*",
                    "status": "unaffected",
                    "version": "6.3.4",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "6.4",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Add preempt_count_{sub,add} into btf id deny list\n\nThe recursion check in __bpf_prog_enter* and __bpf_prog_exit*\nleave preempt_count_{sub,add} unprotected. When attaching trampoline to\nthem we get panic as follows,\n\n[  867.843050] BUG: TASK stack guard page was hit at 0000000009d325cf (stack is 0000000046a46a15..00000000537e7b28)\n[  867.843064] stack guard page: 0000 [#1] PREEMPT SMP NOPTI\n[  867.843067] CPU: 8 PID: 11009 Comm: trace Kdump: loaded Not tainted 6.2.0+ #4\n[  867.843100] Call Trace:\n[  867.843101]  \u003cTASK\u003e\n[  867.843104]  asm_exc_int3+0x3a/0x40\n[  867.843108] RIP: 0010:preempt_count_sub+0x1/0xa0\n[  867.843135]  __bpf_prog_enter_recur+0x17/0x90\n[  867.843148]  bpf_trampoline_6442468108_0+0x2e/0x1000\n[  867.843154]  ? preempt_count_sub+0x1/0xa0\n[  867.843157]  preempt_count_sub+0x5/0xa0\n[  867.843159]  ? migrate_enable+0xac/0xf0\n[  867.843164]  __bpf_prog_exit_recur+0x2d/0x40\n[  867.843168]  bpf_trampoline_6442468108_0+0x55/0x1000\n...\n[  867.843788]  preempt_count_sub+0x5/0xa0\n[  867.843793]  ? migrate_enable+0xac/0xf0\n[  867.843829]  __bpf_prog_exit_recur+0x2d/0x40\n[  867.843837] BUG: IRQ stack guard page was hit at 0000000099bd8228 (stack is 00000000b23e2bc4..000000006d95af35)\n[  867.843841] BUG: IRQ stack guard page was hit at 000000005ae07924 (stack is 00000000ffd69623..0000000014eb594c)\n[  867.843843] BUG: IRQ stack guard page was hit at 00000000028320f0 (stack is 00000000034b6438..0000000078d1bcec)\n[  867.843842]  bpf_trampoline_6442468108_0+0x55/0x1000\n...\n\nThat is because in __bpf_prog_exit_recur, the preempt_count_{sub,add} are\ncalled after prog-\u003eactive is decreased.\n\nFixing this by adding these two functions into btf ids deny list."
          }
        ],
        "id": "CVE-2023-54086",
        "lastModified": "2026-06-17T06:46:46.620",
        "metrics": {},
        "published": "2025-12-24T13:16:10.453",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/095018267c87b8bfbbb12eeb1c0ebf2359e1782c"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/60039bf72f81638baa28652a11a68e9b0b7b5b2d"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/b9168d41b83d182f34ba927ee822edaee18d5fc8"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/c11bd046485d7bf1ca200db0e7d0bdc4bafdd395"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Deferred"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-06-30T10:33:05+00:00",
      "cve": "CVE-2023-54086",
      "id": "CVE-2023-54086",
      "initial_release_date": "2023-01-01T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: bpf: Add preempt_count_{sub,add} into btf id deny list",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2023/cve-2023-54086.json",
      "version": "3"
    }
  }
}



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…

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…