CVE-2024-58008 (GCVE-0-2024-58008)

Vulnerability from cvelistv5 – Published: 2025-02-27 02:12 – Updated: 2026-08-05 11:47
VLAI
Title
KEYS: trusted: dcp: fix improper sg use with CONFIG_VMAP_STACK=y
Summary
In the Linux kernel, the following vulnerability has been resolved: KEYS: trusted: dcp: fix improper sg use with CONFIG_VMAP_STACK=y With vmalloc stack addresses enabled (CONFIG_VMAP_STACK=y) DCP trusted keys can crash during en- and decryption of the blob encryption key via the DCP crypto driver. This is caused by improperly using sg_init_one() with vmalloc'd stack buffers (plain_key_blob). Fix this by always using kmalloc() for buffers we give to the DCP crypto driver.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 0e28bf61a5f9ab30be3f3b4eafb8d097e39446bb , < 3192f1c54dddb9b5820bf5e8677809949d8e9c66 (git)
Affected: 0e28bf61a5f9ab30be3f3b4eafb8d097e39446bb , < 3355594de46fb1cba663f12b9644b664b8a609f4 (git)
Affected: 0e28bf61a5f9ab30be3f3b4eafb8d097e39446bb , < e8d9fab39d1f87b52932646b2f1e7877aa3fc0f4 (git)
Affected: 9e3b266afcfe4294e84496f50f006f029d3100db (git)
Affected: 6.10.7 , < 6.11 (semver)
guessed Create a notification for this product.
Linux Linux Affected: 6.11
Unaffected: 0 , < 6.11 (semver)
Unaffected: 6.12.14 , ≤ 6.12.* (semver)
Unaffected: 6.13.3 , ≤ 6.13.* (semver)
Unaffected: 6.14 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "security/keys/trusted-keys/trusted_dcp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "3192f1c54dddb9b5820bf5e8677809949d8e9c66",
              "status": "affected",
              "version": "0e28bf61a5f9ab30be3f3b4eafb8d097e39446bb",
              "versionType": "git"
            },
            {
              "lessThan": "3355594de46fb1cba663f12b9644b664b8a609f4",
              "status": "affected",
              "version": "0e28bf61a5f9ab30be3f3b4eafb8d097e39446bb",
              "versionType": "git"
            },
            {
              "lessThan": "e8d9fab39d1f87b52932646b2f1e7877aa3fc0f4",
              "status": "affected",
              "version": "0e28bf61a5f9ab30be3f3b4eafb8d097e39446bb",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "9e3b266afcfe4294e84496f50f006f029d3100db",
              "versionType": "git"
            },
            {
              "lessThan": "6.11",
              "status": "affected",
              "version": "6.10.7",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "security/keys/trusted-keys/trusted_dcp.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.11"
            },
            {
              "lessThan": "6.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.14",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.13.*",
              "status": "unaffected",
              "version": "6.13.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.14",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.14",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.13.3",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14",
                  "versionStartIncluding": "6.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionStartIncluding": "6.10.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKEYS: trusted: dcp: fix improper sg use with CONFIG_VMAP_STACK=y\n\nWith vmalloc stack addresses enabled (CONFIG_VMAP_STACK=y) DCP trusted\nkeys can crash during en- and decryption of the blob encryption key via\nthe DCP crypto driver. This is caused by improperly using sg_init_one()\nwith vmalloc\u0027d stack buffers (plain_key_blob).\n\nFix this by always using kmalloc() for buffers we give to the DCP crypto\ndriver."
        }
      ],
      "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 vulnerable paths are entered only through the `add_key(2)`/`keyctl` syscall interface (`trusted_instantiate()` \u2192 `trusted_dcp_seal()`/`trusted_dcp_unseal()`), which requires a local account or shell on the i.MX device. There is no network or adjacent-network protocol that reaches the DCP trusted-key code.\nAC:L - On an affected build (`CONFIG_VMAP_STACK=y`, which is `default y`, plus `CONFIG_TRUSTED_KEYS_DCP=y`, `default y` on i.MX defconfigs) the stack buffer is always a vmalloc address, so `sg_init_one()` unconditionally builds a scatterlist with an out-of-range `struct page *` on every seal and unseal \u2014 no race, timing window, or victim state is involved. The attacker can repeat `add_key()` from many threads to sweep different kernel-stack addresses and therefore different bogus PFNs, so success does not depend on conditions outside their control.\nPR:L - `add_key(2)` only needs write permission on a keyring the caller already owns (`@u`/`@s`), and `trusted_instantiate()` performs no `capable()` check on the DCP path \u2014 the sole `CAP_SYS_ADMIN` gate in trusted-keys is in TPM1 `pcrlock()`, which is unreachable here. Any unprivileged local user, including a sandboxed application, can create or load a DCP trusted key.\nUI:N - The attacker triggers the defect entirely on their own by issuing `keyctl add trusted k \"new 32\" @u` or `\"load \u003chexblob\u003e\"`; no other user must mount a filesystem, open a file, or take any action.\nS:U - The bogus scatterlist page and the resulting wild read/write stay within the kernel\u0027s own address space and are reached through an ordinary syscall, so the vulnerable and impacted components share one security authority. No VM, hypervisor, IOMMU, or sandbox boundary is crossed.\nC:H - The seal path makes the mxs-dcp driver `memcpy()` 16 bytes from `sg_virt()` of a `struct page *` that lies outside `mem_map`, so with `CONFIG_HIGHMEM=y` the out-of-bounds `PageHighMem()` flag read can send `kmap_atomic()` at an arbitrary physical frame and the driver reads kernel memory it was never meant to touch. This wild-pointer read pairs with the wild write below to form a memory-corruption primitive that can be leveraged to disclose kernel memory, so High is the appropriate rating.\nI:H - The unseal path is worse than a read: `sg_pcopy_from_buffer()` writes 16 bytes of DCP-decrypted output through the out-of-bounds page into memory that does not belong to the buffer, an out-of-bounds write whose target is influenced by the attacker\u0027s choice of thread stack and whose contents derive from the attacker-supplied blob ciphertext. Out-of-bounds kernel writes are rated High because they can be groomed into control-flow hijacking.\nA:H - The commit explicitly states DCP trusted keys \"can crash during en- and decryption\"; dereferencing a `struct page *` past `mem_map` yields a NULL or unmapped source address for the `memcpy` or a fixmap entry pointing at nonexistent physical memory, producing a kernel oops or external abort. An unprivileged user can invoke this repeatedly via `add_key()` for a reliable denial of service on the device."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:47:24.494Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/3192f1c54dddb9b5820bf5e8677809949d8e9c66"
        },
        {
          "url": "https://git.kernel.org/stable/c/3355594de46fb1cba663f12b9644b664b8a609f4"
        },
        {
          "url": "https://git.kernel.org/stable/c/e8d9fab39d1f87b52932646b2f1e7877aa3fc0f4"
        }
      ],
      "title": "KEYS: trusted: dcp: fix improper sg use with CONFIG_VMAP_STACK=y",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-58008",
    "datePublished": "2025-02-27T02:12:04.100Z",
    "dateReserved": "2025-02-27T02:10:48.227Z",
    "dateUpdated": "2026-08-05T11:47:24.494Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2024-58008",
      "date": "2026-08-20",
      "epss": "0.00129",
      "percentile": "0.02981"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-58008\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-02-27T03:15:11.780\",\"lastModified\":\"2026-08-04T11:22:36.593\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nKEYS: trusted: dcp: fix improper sg use with CONFIG_VMAP_STACK=y\\n\\nWith vmalloc stack addresses enabled (CONFIG_VMAP_STACK=y) DCP trusted\\nkeys can crash during en- and decryption of the blob encryption key via\\nthe DCP crypto driver. This is caused by improperly using sg_init_one()\\nwith vmalloc\u0027d stack buffers (plain_key_blob).\\n\\nFix this by always using kmalloc() for buffers we give to the DCP crypto\\ndriver.\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: KEYS: trusted: dcp: corrige el uso incorrecto de sg con CONFIG_VMAP_STACK=y Con las direcciones de pila vmalloc habilitadas (CONFIG_VMAP_STACK=y), las claves confiables de DCP pueden fallar durante el cifrado y descifrado de la clave de cifrado de blobs a trav\u00e9s del controlador de cifrado DCP. Esto se debe al uso incorrecto de sg_init_one() con b\u00faferes de pila vmalloc (plain_key_blob). Solucione esto utilizando siempre kmalloc() para los b\u00faferes que le damos al controlador de cifrado DCP.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"security/keys/trusted-keys/trusted_dcp.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"0e28bf61a5f9ab30be3f3b4eafb8d097e39446bb\",\"lessThan\":\"3192f1c54dddb9b5820bf5e8677809949d8e9c66\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"0e28bf61a5f9ab30be3f3b4eafb8d097e39446bb\",\"lessThan\":\"3355594de46fb1cba663f12b9644b664b8a609f4\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"0e28bf61a5f9ab30be3f3b4eafb8d097e39446bb\",\"lessThan\":\"e8d9fab39d1f87b52932646b2f1e7877aa3fc0f4\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"9e3b266afcfe4294e84496f50f006f029d3100db\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"6.10.7\",\"lessThan\":\"6.11\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"security/keys/trusted-keys/trusted_dcp.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.11\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.11\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.14\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.13.3\",\"lessThanOrEqual\":\"6.13.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.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: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}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"NVD-CWE-noinfo\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.10.7\",\"versionEndExcluding\":\"6.11\",\"matchCriteriaId\":\"48B1FCEA-70A6-45BD-A39B-9184638703FB\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.11.1\",\"versionEndExcluding\":\"6.12.14\",\"matchCriteriaId\":\"1192C895-1E13-4705-9775-3C530EDC8826\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.13.3\",\"matchCriteriaId\":\"0E92CEE3-1FC3-4AFC-A513-DEDBA7414F00\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.11:-:*:*:*:*:*:*\",\"matchCriteriaId\":\"4770BA57-3F3F-493B-8608-EC3B25254949\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.11:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"39889A68-6D34-47A6-82FC-CD0BF23D6754\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.11:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"B8383ABF-1457-401F-9B61-EE50F4C61F4F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.11:rc6:*:*:*:*:*:*\",\"matchCriteriaId\":\"B77A9280-37E6-49AD-B559-5B23A3B1DC3D\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:6.11:rc7:*:*:*:*:*:*\",\"matchCriteriaId\":\"DE5298B3-04B4-4F3E-B186-01A58B5C75A6\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/3192f1c54dddb9b5820bf5e8677809949d8e9c66\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/3355594de46fb1cba663f12b9644b664b8a609f4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/e8d9fab39d1f87b52932646b2f1e7877aa3fc0f4\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "None",
      "current_release_date": "2026-06-30T10:37:24+00:00",
      "cve": "CVE-2024-58008",
      "id": "CVE-2024-58008",
      "initial_release_date": "2024-01-01T00:00:00+00:00",
      "product_status:known_not_affected": "274",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: KEYS: trusted: dcp: fix improper sg use with CONFIG_VMAP_STACK=y",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-58008.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-01T23:29:29Z",
      "cve": "CVE-2024-58008",
      "id": "CVE-2024-58008",
      "initial_release_date": "2025-02-28T02:23:04Z",
      "product_status:known_affected": "57",
      "product_status:known_not_affected": "295",
      "product_status:recommended": "53",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2024-58008",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2024-58008.json",
      "version": "19"
    }
  }
}



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…