{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-38068", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-04-16T04:51:23.980Z", "datePublished": "2025-06-18T09:33:46.125Z", "dateUpdated": "2026-08-05T11:59:13.810Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:59:13.810Z" }, "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": { "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" }, "scenarios": [ { "lang": "en", "value": "AV:L - The affected consumers of crypto lzo/lzo-rle compression are local: zswap/zram swap-out of the attacker's 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's 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 — 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 — 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' 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 — repeatably, from an unprivileged process." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "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" ], "versions": [ { "version": "64c70b1cf43de158282bc1675918d503e5b15cc1", "lessThan": "4b173bb2c4665c23f8fcf5241c7b06dfa6b5b111", "status": "affected", "versionType": "git" }, { "version": "64c70b1cf43de158282bc1675918d503e5b15cc1", "lessThan": "a98bd864e16f91c70b2469adf013d713d04d1d13", "status": "affected", "versionType": "git" }, { "version": "64c70b1cf43de158282bc1675918d503e5b15cc1", "lessThan": "0acdc4d6e679ba31d01e3e7e2e4124b76d6d8e2a", "status": "affected", "versionType": "git" }, { "version": "64c70b1cf43de158282bc1675918d503e5b15cc1", "lessThan": "7caad075acb634a74911830d6386c50ea12566cd", "status": "affected", "versionType": "git" }, { "version": "64c70b1cf43de158282bc1675918d503e5b15cc1", "lessThan": "167373d77c70c2b558aae3e327b115249bb2652c", "status": "affected", "versionType": "git" }, { "version": "64c70b1cf43de158282bc1675918d503e5b15cc1", "lessThan": "cc47f07234f72cbd8e2c973cdbf2a6730660a463", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "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" ], "versions": [ { "version": "2.6.23", "status": "affected" }, { "version": "0", "lessThan": "2.6.23", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.185", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.141", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.93", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.31", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.14.9", "lessThanOrEqual": "6.14.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.15", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.23", "versionEndExcluding": "5.15.185" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.23", "versionEndExcluding": "6.1.141" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.23", "versionEndExcluding": "6.6.93" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.23", "versionEndExcluding": "6.12.31" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.23", "versionEndExcluding": "6.14.9" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "2.6.23", "versionEndExcluding": "6.15" } ] } ] } ], "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" } }, "adp": [ { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/10/msg00008.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T17:33:37.495Z" } } ] } }