CVE-2022-49890

capabilities: fix potential memleak on error path from vfs_getxattr_alloc()

Medium · published May 1, 2025

CVSS v3.1
5.5
EPSS
0%
Percentile
11.6
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

capabilities: fix potential memleak on error path from vfs_getxattr_alloc()

In cap_inode_getsecurity(), we will use vfs_getxattr_alloc() to

complete the memory allocation of tmpbuf, if we have completed

the memory allocation of tmpbuf, but failed to call handler->get(...),

there will be a memleak in below logic:

|-- ret = (int)vfs_getxattr_alloc(mnt_userns, ...)

| /* ^^^ alloc for tmpbuf */

|-- value = krealloc(*xattr_value, error + 1, flags)

| /* ^^^ alloc memory */

|-- error = handler->get(handler, ...)

| /* error! */

|-- *xattr_value = value

| /* xattr_value is &tmpbuf (memory leak!) */

So we will try to free(tmpbuf) after vfs_getxattr_alloc() fails to fix it.

[PM: subject line and backtrace tweaks]

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00218 · 11.6th percentile
Published
2025-05-01T14:10Z
EPSS history
Timeline
  • 01 MAY 14:10Z
    capabilities: fix potential memleak on error path from vfs_getxattr_alloc()
    cvelistv5