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

Read the record on cve.org

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

CVSSScoreVectorSource
3.17.8 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before debca61df6bc2f65e020656c9c5b878d6b38d30fAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before a39f456d62810c0efb43cead22f98d95b53e4b1aAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 1e8abde895b3ac6a368cbdb372e8800c49e73a28Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 18373ed500f7cd53e24d9b0bd0f1c09d78dba87eAffected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before be81c44242b20fc3bdcc73480ef8aaee56f5d0b6Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 03155680191ef0f004b1d6a5714c5b8cd271ab61Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before f3bdba4440d82e0da2b1bfc35d3836c8a8e00677Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 2c19945ce8095d065df550e7fe350cd5cc40c6e6Affected
  • 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 to before 8a04d2fc700f717104bfb95b0f6694e448a4537fAffected
LinuxLinux
  • 2.6.12Affected
  • before 2.6.12Not affected
  • 4.9.331 through 4.9.*Not affected
  • 4.14.296 through 4.14.*Not affected
  • 4.19.262 through 4.19.*Not affected
  • 5.4.220 through 5.4.*Not affected
  • 5.10.150 through 5.10.*Not affected
  • 5.15.75 through 5.15.*Not affected
  • 5.19.17 through 5.19.*Not affected
  • 6.0.3 through 6.0.*Not affected
  • 6.1 and laterNot affected

References

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.