CVE-2025-38068 (GCVE-0-2025-38068)
Vulnerability from cvelistv5
Published
2025-06-18 09:33
Modified
2026-08-05 11:59
Summary
In the Linux kernel, the following vulnerability has been resolved: crypto: lzo - Fix compression buffer overrun Unlike the decompression code, the compression code in LZO never checked for output overruns. It instead assumes that the caller always provides enough buffer space, disregarding the buffer length provided by the caller. Add a safe compression interface that checks for the end of buffer before each write. Use the safe interface in crypto/lzo.
Impacted products
Vendor Product Version
Linux Linux Version: 64c70b1cf43de158282bc1675918d503e5b15cc1
Version: 64c70b1cf43de158282bc1675918d503e5b15cc1
Version: 64c70b1cf43de158282bc1675918d503e5b15cc1
Version: 64c70b1cf43de158282bc1675918d503e5b15cc1
Version: 64c70b1cf43de158282bc1675918d503e5b15cc1
Version: 64c70b1cf43de158282bc1675918d503e5b15cc1
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "providerMetadata": {
          "dateUpdated": "2025-11-03T17:33:37.495Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "crypto/lzo-rle.c",
            "crypto/lzo.c",
            "include/linux/lzo.h",
            "lib/lzo/Makefile",
            "lib/lzo/lzo1x_compress.c",
            "lib/lzo/lzo1x_compress_safe.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "4b173bb2c4665c23f8fcf5241c7b06dfa6b5b111",
              "status": "affected",
              "version": "64c70b1cf43de158282bc1675918d503e5b15cc1",
              "versionType": "git"
            },
            {
              "lessThan": "a98bd864e16f91c70b2469adf013d713d04d1d13",
              "status": "affected",
              "version": "64c70b1cf43de158282bc1675918d503e5b15cc1",
              "versionType": "git"
            },
            {
              "lessThan": "0acdc4d6e679ba31d01e3e7e2e4124b76d6d8e2a",
              "status": "affected",
              "version": "64c70b1cf43de158282bc1675918d503e5b15cc1",
              "versionType": "git"
            },
            {
              "lessThan": "7caad075acb634a74911830d6386c50ea12566cd",
              "status": "affected",
              "version": "64c70b1cf43de158282bc1675918d503e5b15cc1",
              "versionType": "git"
            },
            {
              "lessThan": "167373d77c70c2b558aae3e327b115249bb2652c",
              "status": "affected",
              "version": "64c70b1cf43de158282bc1675918d503e5b15cc1",
              "versionType": "git"
            },
            {
              "lessThan": "cc47f07234f72cbd8e2c973cdbf2a6730660a463",
              "status": "affected",
              "version": "64c70b1cf43de158282bc1675918d503e5b15cc1",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "crypto/lzo-rle.c",
            "crypto/lzo.c",
            "include/linux/lzo.h",
            "lib/lzo/Makefile",
            "lib/lzo/lzo1x_compress.c",
            "lib/lzo/lzo1x_compress_safe.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "2.6.23"
            },
            {
              "lessThan": "2.6.23",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.185",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.141",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.93",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.31",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.14.*",
              "status": "unaffected",
              "version": "6.14.9",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.15",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.185",
                  "versionStartIncluding": "2.6.23",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.141",
                  "versionStartIncluding": "2.6.23",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.93",
                  "versionStartIncluding": "2.6.23",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.31",
                  "versionStartIncluding": "2.6.23",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14.9",
                  "versionStartIncluding": "2.6.23",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15",
                  "versionStartIncluding": "2.6.23",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: lzo - Fix compression buffer overrun\n\nUnlike the decompression code, the compression code in LZO never\nchecked for output overruns.  It instead assumes that the caller\nalways provides enough buffer space, disregarding the buffer length\nprovided by the caller.\n\nAdd a safe compression interface that checks for the end of buffer\nbefore each write.  Use the safe interface in crypto/lzo."
        }
      ],
      "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 affected consumers of crypto lzo/lzo-rle compression are local: zswap/zram swap-out of the attacker\u0027s own anonymous pages, UBIFS file writes, and hibernation image compression. IPComp is the only network user of `crypto_comp_compress` and cannot select lzo (xfrm\u0027s calg_list offers only deflate/lzs/lzjh), so no remote path reaches this code.\nAC:L - Triggering only requires feeding incompressible data (e.g. /dev/urandom) into a compression path \u2014 dirtying pages and forcing swap-out under zswap/zram, or writing a file on a lzo-mounted UBIFS. There is no race, no unknown memory layout dependency, and lzo/lzo-rle is a default compressor for zram and UBIFS, so this is fully deterministic and repeatable.\nPR:L - Any unprivileged local user can allocate and dirty memory that gets compressed by zswap/zram, or write file data on a mounted UBIFS volume \u2014 no capabilities, namespaces, or filesystem admin rights are needed. Only local account access is required, hence Low rather than None.\nUI:N - The attacker drives the whole sequence themselves by generating memory pressure or issuing writes; no victim action, mount, or file open by another user is involved.\nS:U - The out-of-bounds write corrupts kernel heap/vmalloc memory within the same kernel security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - An out-of-bounds heap write of attacker-controlled bytes can corrupt adjacent slab objects\u0027 pointers and length fields, which is a well-established route to arbitrary kernel memory disclosure; the over-long compressed stream is also stored and read back, allowing adjacent memory to be recovered on decompression.\nI:H - This is an out-of-bounds write whose overflowing bytes are verbatim copies of attacker-supplied input (the `COPY8` literal loop), giving precise control over the corrupting data and thus a strong heap-corruption primitive suitable for control-flow hijacking and privilege escalation.\nA:H - Overrunning the per-CPU vmalloc scratch buffer hits a guard page for an immediate oops, and slab overflows trip redzone/freelist checks or corrupt allocator metadata, causing kernel panic \u2014 repeatably, from an unprivileged process."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:59:13.810Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/4b173bb2c4665c23f8fcf5241c7b06dfa6b5b111"
        },
        {
          "url": "https://git.kernel.org/stable/c/a98bd864e16f91c70b2469adf013d713d04d1d13"
        },
        {
          "url": "https://git.kernel.org/stable/c/0acdc4d6e679ba31d01e3e7e2e4124b76d6d8e2a"
        },
        {
          "url": "https://git.kernel.org/stable/c/7caad075acb634a74911830d6386c50ea12566cd"
        },
        {
          "url": "https://git.kernel.org/stable/c/167373d77c70c2b558aae3e327b115249bb2652c"
        },
        {
          "url": "https://git.kernel.org/stable/c/cc47f07234f72cbd8e2c973cdbf2a6730660a463"
        }
      ],
      "title": "crypto: lzo - Fix compression buffer overrun",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-38068",
    "datePublished": "2025-06-18T09:33:46.125Z",
    "dateReserved": "2025-04-16T04:51:23.980Z",
    "dateUpdated": "2026-08-05T11:59:13.810Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…