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

CVE-2024-49888 (GCVE-0-2024-49888)

Vulnerability from cvelistv5 – Published: 2024-10-21 18:01 – Updated: 2026-05-11 20:41
VLAI
Title
bpf: Fix a sdiv overflow issue
Summary
In the Linux kernel, the following vulnerability has been resolved: bpf: Fix a sdiv overflow issue Zac Ecob reported a problem where a bpf program may cause kernel crash due to the following error: Oops: divide error: 0000 [#1] PREEMPT SMP KASAN PTI The failure is due to the below signed divide: LLONG_MIN/-1 where LLONG_MIN equals to -9,223,372,036,854,775,808. LLONG_MIN/-1 is supposed to give a positive number 9,223,372,036,854,775,808, but it is impossible since for 64-bit system, the maximum positive number is 9,223,372,036,854,775,807. On x86_64, LLONG_MIN/-1 will cause a kernel exception. On arm64, the result for LLONG_MIN/-1 is LLONG_MIN. Further investigation found all the following sdiv/smod cases may trigger an exception when bpf program is running on x86_64 platform: - LLONG_MIN/-1 for 64bit operation - INT_MIN/-1 for 32bit operation - LLONG_MIN%-1 for 64bit operation - INT_MIN%-1 for 32bit operation where -1 can be an immediate or in a register. On arm64, there are no exceptions: - LLONG_MIN/-1 = LLONG_MIN - INT_MIN/-1 = INT_MIN - LLONG_MIN%-1 = 0 - INT_MIN%-1 = 0 where -1 can be an immediate or in a register. Insn patching is needed to handle the above cases and the patched codes produced results aligned with above arm64 result. The below are pseudo codes to handle sdiv/smod exceptions including both divisor -1 and divisor 0 and the divisor is stored in a register. sdiv: tmp = rX tmp += 1 /* [-1, 0] -> [0, 1] if tmp >(unsigned) 1 goto L2 if tmp == 0 goto L1 rY = 0 L1: rY = -rY; goto L3 L2: rY /= rX L3: smod: tmp = rX tmp += 1 /* [-1, 0] -> [0, 1] if tmp >(unsigned) 1 goto L1 if tmp == 1 (is64 ? goto L2 : goto L3) rY = 0; goto L2 L1: rY %= rX L2: goto L4 // only when !is64 L3: wY = wY // only when !is64 L4: [1] https://lore.kernel.org/bpf/tPJLTEh7S_DxFEqAI2Ji5MBSoZVg7_G-Py2iaZpAaWtM961fFTWtsnlzwvTbzBzaUzwQAoNATXKUlt0LZOFgnDcIyKCswAnAGdUF3LBrhGQ=@protonmail.com/
Severity
No CVSS data available.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2024-10-22 13:44 UTC
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: ec0e2da95f72d4a46050a4d994e4fe471474fd80 , < 4902a6a0dc593c82055fc8c9ada371bafe26c9cc (git)
Affected: ec0e2da95f72d4a46050a4d994e4fe471474fd80 , < d22e45a369afc7c28f11acfa5b5e8e478227ca5d (git)
Affected: ec0e2da95f72d4a46050a4d994e4fe471474fd80 , < 7dd34d7b7dcf9309fc6224caf4dd5b35bedddcb7 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.6
Unaffected: 0 , < 6.6 (semver)
Unaffected: 6.10.14 , ≤ 6.10.* (semver)
Unaffected: 6.11.3 , ≤ 6.11.* (semver)
Unaffected: 6.12 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-49888",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-10-22T13:44:44.632925Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-10-22T13:48:49.455Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "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": "4902a6a0dc593c82055fc8c9ada371bafe26c9cc",
              "status": "affected",
              "version": "ec0e2da95f72d4a46050a4d994e4fe471474fd80",
              "versionType": "git"
            },
            {
              "lessThan": "d22e45a369afc7c28f11acfa5b5e8e478227ca5d",
              "status": "affected",
              "version": "ec0e2da95f72d4a46050a4d994e4fe471474fd80",
              "versionType": "git"
            },
            {
              "lessThan": "7dd34d7b7dcf9309fc6224caf4dd5b35bedddcb7",
              "status": "affected",
              "version": "ec0e2da95f72d4a46050a4d994e4fe471474fd80",
              "versionType": "git"
            }
          ]
        },
        {
          "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": "6.6"
            },
            {
              "lessThan": "6.6",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.10.*",
              "status": "unaffected",
              "version": "6.10.14",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.11.*",
              "status": "unaffected",
              "version": "6.11.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.12",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.10.14",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.11.3",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12",
                  "versionStartIncluding": "6.6",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Fix a sdiv overflow issue\n\nZac Ecob reported a problem where a bpf program may cause kernel crash due\nto the following error:\n  Oops: divide error: 0000 [#1] PREEMPT SMP KASAN PTI\n\nThe failure is due to the below signed divide:\n  LLONG_MIN/-1 where LLONG_MIN equals to -9,223,372,036,854,775,808.\nLLONG_MIN/-1 is supposed to give a positive number 9,223,372,036,854,775,808,\nbut it is impossible since for 64-bit system, the maximum positive\nnumber is 9,223,372,036,854,775,807. On x86_64, LLONG_MIN/-1 will\ncause a kernel exception. On arm64, the result for LLONG_MIN/-1 is\nLLONG_MIN.\n\nFurther investigation found all the following sdiv/smod cases may trigger\nan exception when bpf program is running on x86_64 platform:\n  - LLONG_MIN/-1 for 64bit operation\n  - INT_MIN/-1 for 32bit operation\n  - LLONG_MIN%-1 for 64bit operation\n  - INT_MIN%-1 for 32bit operation\nwhere -1 can be an immediate or in a register.\n\nOn arm64, there are no exceptions:\n  - LLONG_MIN/-1 = LLONG_MIN\n  - INT_MIN/-1 = INT_MIN\n  - LLONG_MIN%-1 = 0\n  - INT_MIN%-1 = 0\nwhere -1 can be an immediate or in a register.\n\nInsn patching is needed to handle the above cases and the patched codes\nproduced results aligned with above arm64 result. The below are pseudo\ncodes to handle sdiv/smod exceptions including both divisor -1 and divisor 0\nand the divisor is stored in a register.\n\nsdiv:\n      tmp = rX\n      tmp += 1 /* [-1, 0] -\u003e [0, 1]\n      if tmp \u003e(unsigned) 1 goto L2\n      if tmp == 0 goto L1\n      rY = 0\n  L1:\n      rY = -rY;\n      goto L3\n  L2:\n      rY /= rX\n  L3:\n\nsmod:\n      tmp = rX\n      tmp += 1 /* [-1, 0] -\u003e [0, 1]\n      if tmp \u003e(unsigned) 1 goto L1\n      if tmp == 1 (is64 ? goto L2 : goto L3)\n      rY = 0;\n      goto L2\n  L1:\n      rY %= rX\n  L2:\n      goto L4  // only when !is64\n  L3:\n      wY = wY  // only when !is64\n  L4:\n\n  [1] https://lore.kernel.org/bpf/tPJLTEh7S_DxFEqAI2Ji5MBSoZVg7_G-Py2iaZpAaWtM961fFTWtsnlzwvTbzBzaUzwQAoNATXKUlt0LZOFgnDcIyKCswAnAGdUF3LBrhGQ=@protonmail.com/"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-05-11T20:41:12.240Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/4902a6a0dc593c82055fc8c9ada371bafe26c9cc"
        },
        {
          "url": "https://git.kernel.org/stable/c/d22e45a369afc7c28f11acfa5b5e8e478227ca5d"
        },
        {
          "url": "https://git.kernel.org/stable/c/7dd34d7b7dcf9309fc6224caf4dd5b35bedddcb7"
        }
      ],
      "title": "bpf: Fix a sdiv overflow issue",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-49888",
    "datePublished": "2024-10-21T18:01:24.235Z",
    "dateReserved": "2024-10-21T12:17:06.022Z",
    "dateUpdated": "2026-05-11T20:41:12.240Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-49888",
      "date": "2026-09-17",
      "epss": "0.00237",
      "percentile": "0.14898"
    },
    "microsoft_vex": {
      "current_release_date": "2026-06-28T01:55:01.000Z",
      "cve": "CVE-2024-49888",
      "id": "msrc_CVE-2024-49888",
      "initial_release_date": "2024-10-01T07:00:00.000Z",
      "product_status:under_investigation": "19",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "bpf: Fix a sdiv overflow issue",
      "url": "https://msrc.microsoft.com/csaf/vex/2024/msrc_cve-2024-49888.json",
      "version": "14"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-49888\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2024-10-21T18:15:11.443\",\"lastModified\":\"2026-06-17T08:00:40.150\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nbpf: Fix a sdiv overflow issue\\n\\nZac Ecob reported a problem where a bpf program may cause kernel crash due\\nto the following error:\\n  Oops: divide error: 0000 [#1] PREEMPT SMP KASAN PTI\\n\\nThe failure is due to the below signed divide:\\n  LLONG_MIN/-1 where LLONG_MIN equals to -9,223,372,036,854,775,808.\\nLLONG_MIN/-1 is supposed to give a positive number 9,223,372,036,854,775,808,\\nbut it is impossible since for 64-bit system, the maximum positive\\nnumber is 9,223,372,036,854,775,807. On x86_64, LLONG_MIN/-1 will\\ncause a kernel exception. On arm64, the result for LLONG_MIN/-1 is\\nLLONG_MIN.\\n\\nFurther investigation found all the following sdiv/smod cases may trigger\\nan exception when bpf program is running on x86_64 platform:\\n  - LLONG_MIN/-1 for 64bit operation\\n  - INT_MIN/-1 for 32bit operation\\n  - LLONG_MIN%-1 for 64bit operation\\n  - INT_MIN%-1 for 32bit operation\\nwhere -1 can be an immediate or in a register.\\n\\nOn arm64, there are no exceptions:\\n  - LLONG_MIN/-1 = LLONG_MIN\\n  - INT_MIN/-1 = INT_MIN\\n  - LLONG_MIN%-1 = 0\\n  - INT_MIN%-1 = 0\\nwhere -1 can be an immediate or in a register.\\n\\nInsn patching is needed to handle the above cases and the patched codes\\nproduced results aligned with above arm64 result. The below are pseudo\\ncodes to handle sdiv/smod exceptions including both divisor -1 and divisor 0\\nand the divisor is stored in a register.\\n\\nsdiv:\\n      tmp = rX\\n      tmp += 1 /* [-1, 0] -\u003e [0, 1]\\n      if tmp \u003e(unsigned) 1 goto L2\\n      if tmp == 0 goto L1\\n      rY = 0\\n  L1:\\n      rY = -rY;\\n      goto L3\\n  L2:\\n      rY /= rX\\n  L3:\\n\\nsmod:\\n      tmp = rX\\n      tmp += 1 /* [-1, 0] -\u003e [0, 1]\\n      if tmp \u003e(unsigned) 1 goto L1\\n      if tmp == 1 (is64 ? goto L2 : goto L3)\\n      rY = 0;\\n      goto L2\\n  L1:\\n      rY %= rX\\n  L2:\\n      goto L4  // only when !is64\\n  L3:\\n      wY = wY  // only when !is64\\n  L4:\\n\\n  [1] https://lore.kernel.org/bpf/tPJLTEh7S_DxFEqAI2Ji5MBSoZVg7_G-Py2iaZpAaWtM961fFTWtsnlzwvTbzBzaUzwQAoNATXKUlt0LZOFgnDcIyKCswAnAGdUF3LBrhGQ=@protonmail.com/\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: bpf: soluciona un problema de desbordamiento de sdiv Zac Ecob inform\u00f3 de un problema en el que un programa bpf puede provocar un fallo del kernel debido al siguiente error: Oops: error de divisi\u00f3n: 0000 [#1] PREEMPT SMP KASAN PTI El fallo se debe a la siguiente divisi\u00f3n con signo: LLONG_MIN/-1 donde LLONG_MIN equivale a -9.223.372.036.854.775.808. Se supone que LLONG_MIN/-1 da un n\u00famero positivo 9.223.372.036.854.775.808, pero es imposible ya que para sistemas de 64 bits, el n\u00famero positivo m\u00e1ximo es 9.223.372.036.854.775.807. En x86_64, LLONG_MIN/-1 provocar\u00e1 una excepci\u00f3n del kernel. En arm64, el resultado para LLONG_MIN/-1 es LLONG_MIN. Una investigaci\u00f3n m\u00e1s profunda encontr\u00f3 que todos los siguientes casos de sdiv/smod pueden activar una excepci\u00f3n cuando el programa bpf se ejecuta en la plataforma x86_64: - LLONG_MIN/-1 para operaci\u00f3n de 64 bits - INT_MIN/-1 para operaci\u00f3n de 32 bits - LLONG_MIN%-1 para operaci\u00f3n de 64 bits - INT_MIN%-1 para operaci\u00f3n de 32 bits donde -1 puede ser inmediato o en un registro. En arm64, no hay excepciones: - LLONG_MIN/-1 = LLONG_MIN - INT_MIN/-1 = INT_MIN - LLONG_MIN%-1 = 0 - INT_MIN%-1 = 0 donde -1 puede ser inmediato o en un registro. Se necesita aplicar un parche a Insn para manejar los casos anteriores y los c\u00f3digos parcheados produjeron resultados alineados con el resultado de arm64 anterior. Los siguientes son pseudoc\u00f3digos para manejar excepciones sdiv/smod incluyendo tanto el divisor -1 como el divisor 0 y el divisor se almacena en un registro. sdiv: tmp = rX tmp += 1 /* [-1, 0] -\u0026gt; [0, 1] if tmp \u0026gt;(unsigned) 1 goto L2 if tmp == 0 goto L1 rY = 0 L1: rY = -rY; goto L3 L2: rY /= rX L3: smod: tmp = rX tmp += 1 /* [-1, 0] -\u0026gt; [0, 1] if tmp \u0026gt;(unsigned) 1 goto L1 if tmp == 1 (is64 ? goto L2 : goto L3) rY = 0; goto L2 L1: rY %= rX L2: goto L4 // solo cuando !is64 L3: wY = wY // solo cuando !is64 L4: [1] https://lore.kernel.org/bpf/tPJLTEh7S_DxFEqAI2Ji5MBSoZVg7_G-Py2iaZpAaWtM961fFTWtsnlzwvTbzBzaUzwQAoNATXKUlt0LZOFgnDcIyKCswAnAGdUF3LBrhGQ=@protonmail.com/\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"kernel/bpf/verifier.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"ec0e2da95f72d4a46050a4d994e4fe471474fd80\",\"lessThan\":\"4902a6a0dc593c82055fc8c9ada371bafe26c9cc\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ec0e2da95f72d4a46050a4d994e4fe471474fd80\",\"lessThan\":\"d22e45a369afc7c28f11acfa5b5e8e478227ca5d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"ec0e2da95f72d4a46050a4d994e4fe471474fd80\",\"lessThan\":\"7dd34d7b7dcf9309fc6224caf4dd5b35bedddcb7\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"kernel/bpf/verifier.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.6\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.6\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.10.14\",\"lessThanOrEqual\":\"6.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.11.3\",\"lessThanOrEqual\":\"6.11.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"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:H\",\"baseScore\":5.5,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"NONE\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":3.6}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2024-10-22T13:44:44.632925Z\",\"id\":\"CVE-2024-49888\",\"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-190\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionEndExcluding\":\"6.10.14\",\"matchCriteriaId\":\"652638C5-5F25-4DF3-AD42-DD3252A97152\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.11\",\"versionEndExcluding\":\"6.11.3\",\"matchCriteriaId\":\"54D9C704-D679-41A7-9C40-10A6B1E7FFE9\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/4902a6a0dc593c82055fc8c9ada371bafe26c9cc\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/7dd34d7b7dcf9309fc6224caf4dd5b35bedddcb7\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/d22e45a369afc7c28f11acfa5b5e8e478227ca5d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-09-13T15:33:27+00:00",
      "cve": "CVE-2024-49888",
      "id": "CVE-2024-49888",
      "initial_release_date": "2024-10-21T00:00:00+00:00",
      "product_status:fixed": "558",
      "product_status:known_affected": "98",
      "product_status:known_not_affected": "15",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: bpf: Fix a sdiv overflow issue",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-49888.json",
      "version": "3"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-49888\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-10-22T13:44:44.632925Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-10-22T13:44:47.760Z\"}}], \"cna\": {\"title\": \"bpf: Fix a sdiv overflow issue\", \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"ec0e2da95f72d4a46050a4d994e4fe471474fd80\", \"lessThan\": \"4902a6a0dc593c82055fc8c9ada371bafe26c9cc\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"ec0e2da95f72d4a46050a4d994e4fe471474fd80\", \"lessThan\": \"d22e45a369afc7c28f11acfa5b5e8e478227ca5d\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"ec0e2da95f72d4a46050a4d994e4fe471474fd80\", \"lessThan\": \"7dd34d7b7dcf9309fc6224caf4dd5b35bedddcb7\", \"versionType\": \"git\"}], \"programFiles\": [\"kernel/bpf/verifier.c\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"6.6\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"6.6\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"6.10.14\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.10.*\"}, {\"status\": \"unaffected\", \"version\": \"6.11.3\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.11.*\"}, {\"status\": \"unaffected\", \"version\": \"6.12\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"kernel/bpf/verifier.c\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/4902a6a0dc593c82055fc8c9ada371bafe26c9cc\"}, {\"url\": \"https://git.kernel.org/stable/c/d22e45a369afc7c28f11acfa5b5e8e478227ca5d\"}, {\"url\": \"https://git.kernel.org/stable/c/7dd34d7b7dcf9309fc6224caf4dd5b35bedddcb7\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nbpf: Fix a sdiv overflow issue\\n\\nZac Ecob reported a problem where a bpf program may cause kernel crash due\\nto the following error:\\n  Oops: divide error: 0000 [#1] PREEMPT SMP KASAN PTI\\n\\nThe failure is due to the below signed divide:\\n  LLONG_MIN/-1 where LLONG_MIN equals to -9,223,372,036,854,775,808.\\nLLONG_MIN/-1 is supposed to give a positive number 9,223,372,036,854,775,808,\\nbut it is impossible since for 64-bit system, the maximum positive\\nnumber is 9,223,372,036,854,775,807. On x86_64, LLONG_MIN/-1 will\\ncause a kernel exception. On arm64, the result for LLONG_MIN/-1 is\\nLLONG_MIN.\\n\\nFurther investigation found all the following sdiv/smod cases may trigger\\nan exception when bpf program is running on x86_64 platform:\\n  - LLONG_MIN/-1 for 64bit operation\\n  - INT_MIN/-1 for 32bit operation\\n  - LLONG_MIN%-1 for 64bit operation\\n  - INT_MIN%-1 for 32bit operation\\nwhere -1 can be an immediate or in a register.\\n\\nOn arm64, there are no exceptions:\\n  - LLONG_MIN/-1 = LLONG_MIN\\n  - INT_MIN/-1 = INT_MIN\\n  - LLONG_MIN%-1 = 0\\n  - INT_MIN%-1 = 0\\nwhere -1 can be an immediate or in a register.\\n\\nInsn patching is needed to handle the above cases and the patched codes\\nproduced results aligned with above arm64 result. The below are pseudo\\ncodes to handle sdiv/smod exceptions including both divisor -1 and divisor 0\\nand the divisor is stored in a register.\\n\\nsdiv:\\n      tmp = rX\\n      tmp += 1 /* [-1, 0] -\u003e [0, 1]\\n      if tmp \u003e(unsigned) 1 goto L2\\n      if tmp == 0 goto L1\\n      rY = 0\\n  L1:\\n      rY = -rY;\\n      goto L3\\n  L2:\\n      rY /= rX\\n  L3:\\n\\nsmod:\\n      tmp = rX\\n      tmp += 1 /* [-1, 0] -\u003e [0, 1]\\n      if tmp \u003e(unsigned) 1 goto L1\\n      if tmp == 1 (is64 ? goto L2 : goto L3)\\n      rY = 0;\\n      goto L2\\n  L1:\\n      rY %= rX\\n  L2:\\n      goto L4  // only when !is64\\n  L3:\\n      wY = wY  // only when !is64\\n  L4:\\n\\n  [1] https://lore.kernel.org/bpf/tPJLTEh7S_DxFEqAI2Ji5MBSoZVg7_G-Py2iaZpAaWtM961fFTWtsnlzwvTbzBzaUzwQAoNATXKUlt0LZOFgnDcIyKCswAnAGdUF3LBrhGQ=@protonmail.com/\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.10.14\", \"versionStartIncluding\": \"6.6\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.11.3\", \"versionStartIncluding\": \"6.6\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.12\", \"versionStartIncluding\": \"6.6\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2025-05-04T09:40:31.703Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-49888\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2025-05-04T09:40:31.703Z\", \"dateReserved\": \"2024-10-21T12:17:06.022Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-10-21T18:01:24.235Z\", \"assignerShortName\": \"Linux\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }
  }
}



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…