CVE-2022-50569
xfrm: Update ipcomp_scratches with NULL when freed
- State
- Published
- Severity
- 7.8 High
- Published
- Oct 22, 2025
- Updated
- Aug 5, 2026
- Reserved
- Oct 22, 2025
Description
In the Linux kernel, the following vulnerability has been resolved:
xfrm: Update ipcomp_scratches with NULL when freed
Currently if ipcomp_alloc_scratches() fails to allocate memory ipcomp_scratches holds obsolete address. So when we try to free the percpu scratches using ipcomp_free_scratches() it tries to vfree non existent vm area. Described below:
static void * __percpu *ipcomp_alloc_scratches(void) { ... scratches = alloc_percpu(void *); if (!scratches) return NULL; ipcomp_scratches does not know about this allocation failure. Therefore holding the old obsolete address. ... }
So when we free,
static void ipcomp_free_scratches(void) { ... scratches = ipcomp_scratches; Assigning obsolete address from ipcomp_scratches
if (!scratches) return;
for_each_possible_cpu(i) vfree(*per_cpu_ptr(scratches, i)); Trying to free non existent page, causing warning: trying to vfree existent vm area. ... }
Fix this breakage by updating ipcomp_scrtches with NULL when scratches is freed
Scores
| CVSS | Score | Vector | Source |
|---|---|---|---|
| 3.1 | 7.8 High | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H | Linux |
Weaknesses
The record names no weakness.
Affected Products
| Product | Versions |
|---|---|
LinuxLinux |
|
LinuxLinux |
|
References
- https://git.kernel.org/stable/c/debca61df6bc2f65e020656c9c5b878d6b38d30f
- https://git.kernel.org/stable/c/a39f456d62810c0efb43cead22f98d95b53e4b1a
- https://git.kernel.org/stable/c/1e8abde895b3ac6a368cbdb372e8800c49e73a28
- https://git.kernel.org/stable/c/18373ed500f7cd53e24d9b0bd0f1c09d78dba87e
- https://git.kernel.org/stable/c/be81c44242b20fc3bdcc73480ef8aaee56f5d0b6
- https://git.kernel.org/stable/c/03155680191ef0f004b1d6a5714c5b8cd271ab61
- https://git.kernel.org/stable/c/f3bdba4440d82e0da2b1bfc35d3836c8a8e00677
- https://git.kernel.org/stable/c/2c19945ce8095d065df550e7fe350cd5cc40c6e6
- https://git.kernel.org/stable/c/8a04d2fc700f717104bfb95b0f6694e448a4537f
Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.