CVE-2022-49890

Updated on 01 May 2025

Severity

5.5 Medium severity

Details

CVSS score
5.5
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Overview

About vulnerability

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]

Details

Affected packages:
kernel @ 4.18.0 (+8 more)

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]

Fixes