Upstream information

CVE-2022-49899 at MITRE

Description

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

fscrypt: stop using keyrings subsystem for fscrypt_master_key

The approach of fs/crypto/ internally managing the fscrypt_master_key
structs as the payloads of "struct key" objects contained in a
"struct key" keyring has outlived its usefulness. The original idea was
to simplify the code by reusing code from the keyrings subsystem.
However, several issues have arisen that can't easily be resolved:

- When a master key struct is destroyed, blk_crypto_evict_key() must be
called on any per-mode keys embedded in it. (This started being the
case when inline encryption support was added.) Yet, the keyrings
subsystem can arbitrarily delay the destruction of keys, even past the
time the filesystem was unmounted. Therefore, currently there is no
easy way to call blk_crypto_evict_key() when a master key is
destroyed. Currently, this is worked around by holding an extra
reference to the filesystem's request_queue(s). But it was overlooked
that the request_queue reference is *not* guaranteed to pin the
corresponding blk_crypto_profile too; for device-mapper devices that
support inline crypto, it doesn't. This can cause a use-after-free.

- When the last inode that was using an incompletely-removed master key
is evicted, the master key removal is completed by removing the key
struct from the keyring. Currently this is done via key_invalidate().
Yet, key_invalidate() takes the key semaphore. This can deadlock when
called from the shrinker, since in fscrypt_ioctl_add_key(), memory is
allocated with GFP_KERNEL under the same semaphore.

- More generally, the fact that the keyrings subsystem can arbitrarily
delay the destruction of keys (via garbage collection delay, or via
random processes getting temporary key references) is undesirable, as
it means we can't strictly guarantee that all secrets are ever wiped.

- Doing the master key lookups via the keyrings subsystem results in the
key_permission LSM hook being called. fscrypt doesn't want this, as
all access control for encrypted files is designed to happen via the
files themselves, like any other files. The workaround which SELinux
users are using is to change their SELinux policy to grant key search
access to all domains. This works, but it is an odd extra step that
shouldn't really have to be done.

The fix for all these issues is to change the implementation to what I
should have done originally: don't use the keyrings subsystem to keep
track of the filesystem's fscrypt_master_key structs. Instead, just
store them in a regular kernel data structure, and rework the reference
counting, locking, and lifetime accordingly. Retain support for
RCU-mode key lookups by using a hash table. Replace fscrypt_sb_free()
with fscrypt_sb_delete(), which releases the keys synchronously and runs
a bit earlier during unmount, so that block devices are still available.

A side effect of this patch is that neither the master keys themselves
nor the filesystem keyrings will be listed in /proc/keys anymore.
("Master key users" and the master key users keyrings will still be
listed.) However, this was mostly an implementation detail, and it was
intended just for debugging purposes. I don't know of anyone using it.

This patch does *not* change how "master key users" (->mk_users) works;
that still uses the keyrings subsystem. That is still needed for key
quotas, and changing that isn't necessary to solve the issues listed
above. If we decide to change that too, it would be a separate patch.

I've marked this as fixing the original commit that added the fscrypt
keyring, but as noted above the most important issue that this patch
fixes wasn't introduced until the addition of inline encryption support.

SUSE information

Overall state of this security issue: Resolved

This issue is currently rated as having moderate severity.

CVSS v3 Scores
  National Vulnerability Database SUSE
Base Score 5.5 5.5
Vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Attack Vector Local Local
Attack Complexity Low Low
Privileges Required Low Low
User Interaction None None
Scope Unchanged Unchanged
Confidentiality Impact None None
Integrity Impact None None
Availability Impact High High
CVSSv3 Version 3.1 3.1

Note from the SUSE Security Team on the kernel-default package

SUSE will no longer fix all CVEs in the Linux Kernel anymore, but declare some bug classes as won't fix. Please refer to TID 21496 for more details.

SUSE Bugzilla entry: 1242466 [NEW]

No SUSE Security Announcements cross referenced.


Status of this issue by product and package

Please note that this evaluation state might be work in progress, incomplete or outdated. Also information for service packs in the LTSS phase is only included for issues meeting the LTSS criteria. If in doubt, feel free to contact us for clarification. The updates are grouped by state of their lifecycle. SUSE product lifecycles are documented on the lifecycle page.

Product(s) Source package State
Products under general support and receiving all security fixes.
SUSE Linux Enterprise Desktop 15 SP6 kernel-default Not affected
SUSE Linux Enterprise Desktop 15 SP6 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Desktop 15 SP7 kernel-source Not affected
SUSE Linux Enterprise High Availability Extension 15 SP7 kernel-default Not affected
SUSE Linux Enterprise High Availability Extension 15 SP7 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP6 kernel-default Not affected
SUSE Linux Enterprise High Performance Computing 15 SP6 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP6 kernel-source-azure Not affected
SUSE Linux Enterprise High Performance Computing 15 SP7 kernel-default Not affected
SUSE Linux Enterprise High Performance Computing 15 SP7 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP7 kernel-source-azure Not affected
SUSE Linux Enterprise Live Patching 15 SP6 kernel-default Not affected
SUSE Linux Enterprise Live Patching 15 SP6 kernel-source Not affected
SUSE Linux Enterprise Live Patching 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Live Patching 15 SP7 kernel-source Not affected
SUSE Linux Enterprise Micro 5.1 kernel-default Not affected
SUSE Linux Enterprise Micro 5.1 kernel-rt Not affected
SUSE Linux Enterprise Micro 5.1 kernel-source Not affected
SUSE Linux Enterprise Micro 5.1 kernel-source-rt Not affected
SUSE Linux Enterprise Micro 5.2 kernel-default Not affected
SUSE Linux Enterprise Micro 5.2 kernel-rt Not affected
SUSE Linux Enterprise Micro 5.2 kernel-source Not affected
SUSE Linux Enterprise Micro 5.2 kernel-source-rt Not affected
SUSE Linux Enterprise Micro 5.3 kernel-default Affected
SUSE Linux Enterprise Micro 5.3 kernel-rt Affected
SUSE Linux Enterprise Micro 5.3 kernel-source Affected
SUSE Linux Enterprise Micro 5.3 kernel-source-rt Affected
SUSE Linux Enterprise Micro 5.4 kernel-default Affected
SUSE Linux Enterprise Micro 5.4 kernel-rt Affected
SUSE Linux Enterprise Micro 5.4 kernel-source Affected
SUSE Linux Enterprise Micro 5.4 kernel-source-rt Affected
SUSE Linux Enterprise Micro 5.5 kernel-default Not affected
SUSE Linux Enterprise Micro 5.5 kernel-source Not affected
SUSE Linux Enterprise Micro 5.5 kernel-source-rt Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP6 kernel-default Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP6 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP7 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP6 kernel-default Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP6 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP7 kernel-source Not affected
SUSE Linux Enterprise Module for Legacy 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Module for Legacy 15 SP7 kernel-source Not affected
SUSE Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure Not affected
SUSE Linux Enterprise Module for Public Cloud 15 SP7 kernel-source-azure Not affected
SUSE Linux Enterprise Real Time 15 SP6 kernel-source-rt Not affected
SUSE Linux Enterprise Server 15 SP6 kernel-default Not affected
SUSE Linux Enterprise Server 15 SP6 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP6 kernel-source-azure Not affected
SUSE Linux Enterprise Server 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Server 15 SP7 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP7 kernel-source-azure Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP6 kernel-default Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP6 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP6 kernel-source-azure Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP7 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP7 kernel-source-azure Not affected
SUSE Linux Enterprise Workstation Extension 15 SP6 kernel-default Not affected
SUSE Linux Enterprise Workstation Extension 15 SP6 kernel-source Not affected
SUSE Linux Enterprise Workstation Extension 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Workstation Extension 15 SP7 kernel-source Not affected
SUSE Linux Micro 6.0 kernel-default Not affected
SUSE Linux Micro 6.0 kernel-source Not affected
SUSE Linux Micro 6.0 kernel-source-rt Not affected
SUSE Linux Micro 6.1 kernel-default Not affected
SUSE Linux Micro 6.1 kernel-source Not affected
SUSE Linux Micro 6.1 kernel-source-rt Not affected
SUSE Real Time Module 15 SP6 kernel-source-rt Not affected
openSUSE Leap 15.6 kernel-default Not affected
openSUSE Leap 15.6 kernel-source Not affected
openSUSE Leap 15.6 kernel-source-azure Not affected
openSUSE Leap 15.6 kernel-source-rt Not affected
Products under Long Term Service Pack support and receiving important and critical security fixes.
SUSE Linux Enterprise High Performance Computing 15 SP3 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS kernel-default Not affected
SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP4 kernel-source Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS kernel-default Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS kernel-source Affected
SUSE Linux Enterprise High Performance Computing 15 SP5 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP5 kernel-source-azure Unsupported
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS kernel-default Not affected
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS kernel-default Not affected
SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS kernel-source Not affected
SUSE Linux Enterprise Live Patching 12 SP5 kernel-default Not affected
SUSE Linux Enterprise Live Patching 12 SP5 kernel-source Not affected
SUSE Linux Enterprise Live Patching 15 SP3 kernel-default Not affected
SUSE Linux Enterprise Live Patching 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Live Patching 15 SP4 kernel-default Affected
SUSE Linux Enterprise Live Patching 15 SP4 kernel-source Affected
SUSE Linux Enterprise Live Patching 15 SP5 kernel-default Not affected
SUSE Linux Enterprise Live Patching 15 SP5 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP4 kernel-source Affected
SUSE Linux Enterprise Module for Basesystem 15 SP5 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP4 kernel-source Affected
SUSE Linux Enterprise Module for Development Tools 15 SP5 kernel-source Not affected
SUSE Linux Enterprise Module for Public Cloud 15 SP5 kernel-source-azure Unsupported
SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE kernel-default Not affected
SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE kernel-source Not affected
SUSE Linux Enterprise Server 12 SP5 kernel-source Not affected
SUSE Linux Enterprise Server 12 SP5 kernel-source-azure Unsupported
SUSE Linux Enterprise Server 12 SP5-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 12 SP5-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP5-LTSS kernel-source-azure Unsupported
SUSE Linux Enterprise Server 12 SP5-LTSS Extended Security kernel-default Not affected
SUSE Linux Enterprise Server 12 SP5-LTSS Extended Security kernel-source Not affected
SUSE Linux Enterprise Server 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP3-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP3-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP4 kernel-source Affected
SUSE Linux Enterprise Server 15 SP4-LTSS kernel-default Affected
SUSE Linux Enterprise Server 15 SP4-LTSS kernel-source Affected
SUSE Linux Enterprise Server 15 SP5 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP5 kernel-source-azure Unsupported
SUSE Linux Enterprise Server 15 SP5-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP5-LTSS kernel-source Not affected
SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 kernel-source Not affected
SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 kernel-source-azure Unsupported
SUSE Manager Proxy 4.3 kernel-default Affected
SUSE Manager Proxy 4.3 kernel-source Affected
SUSE Manager Proxy LTS 4.3 kernel-source Affected
SUSE Manager Retail Branch Server 4.3 kernel-default Affected
SUSE Manager Retail Branch Server 4.3 kernel-source Affected
SUSE Manager Retail Branch Server LTS 4.3 kernel-source Affected
SUSE Manager Server 4.3 kernel-default Affected
SUSE Manager Server 4.3 kernel-source Affected
SUSE Manager Server LTS 4.3 kernel-source Affected
Products past their end of life and not receiving proactive updates anymore.
SUSE CaaS Platform 4.0 kernel-source Not affected
SUSE Enterprise Storage 6 kernel-source Not affected
SUSE Enterprise Storage 7 kernel-source Not affected
SUSE Enterprise Storage 7.1 kernel-source Not affected
SUSE Linux Enterprise Desktop 11 SP4 kernel-source Not affected
SUSE Linux Enterprise Desktop 12 SP2 kernel-source Not affected
SUSE Linux Enterprise Desktop 12 SP4 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP4 kernel-source Affected
SUSE Linux Enterprise Desktop 15 SP5 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP1 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP2 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS kernel-source Affected
SUSE Linux Enterprise High Performance Computing 15-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15-LTSS kernel-source Not affected
SUSE Linux Enterprise Micro 5.0 kernel-default Not affected
SUSE Linux Enterprise Micro 5.0 kernel-rt Unsupported
SUSE Linux Enterprise Module for Basesystem 15 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Point of Sale 12 SP2-CLIENT kernel-source Not affected
SUSE Linux Enterprise Real Time 15 SP1 kernel-source-rt Unsupported
SUSE Linux Enterprise Real Time 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Real Time 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Real Time 15 SP3 kernel-source-rt Not affected
SUSE Linux Enterprise Real Time 15 SP4 kernel-source Affected
SUSE Linux Enterprise Real Time 15 SP4 kernel-source-rt Affected
SUSE Linux Enterprise Real Time 15 SP5 kernel-source-rt Not affected
SUSE Linux Enterprise Server 11 SP4 kernel-source Not affected
SUSE Linux Enterprise Server 11 SP4 LTSS kernel-default Not affected
SUSE Linux Enterprise Server 11 SP4 LTSS kernel-source Not affected
SUSE Linux Enterprise Server 11 SP4-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP2 kernel-source Not affected
SUSE Linux Enterprise Server 12 SP2-BCL kernel-source Not affected
SUSE Linux Enterprise Server 12 SP2-ESPOS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP2-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 12 SP2-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP4 kernel-source Not affected
SUSE Linux Enterprise Server 12 SP4-ESPOS kernel-source Not affected
SUSE Linux Enterprise Server 12 SP4-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 12 SP4-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP1-BCL kernel-source Not affected
SUSE Linux Enterprise Server 15 SP1-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP1-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP2-BCL kernel-source Not affected
SUSE Linux Enterprise Server 15 SP2-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP2-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP3-BCL kernel-source Not affected
SUSE Linux Enterprise Server 15-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15-LTSS kernel-source Not affected
SUSE Linux Enterprise Server for Raspberry Pi 12 SP2 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 12 SP2 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 12 SP4 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP3 kernel-default Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP4 kernel-default Affected
SUSE Linux Enterprise Server for SAP Applications 15 SP4 kernel-source Affected
SUSE Linux Enterprise Server for SAP Applications 15 SP5 kernel-default Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP5 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP5 kernel-source-azure Unsupported
SUSE Manager Proxy 4.0 kernel-source Not affected
SUSE Manager Proxy 4.1 kernel-source Not affected
SUSE Manager Proxy 4.2 kernel-source Not affected
SUSE Manager Retail Branch Server 4.0 kernel-source Not affected
SUSE Manager Retail Branch Server 4.1 kernel-source Not affected
SUSE Manager Retail Branch Server 4.2 kernel-source Not affected
SUSE Manager Server 4.0 kernel-source Not affected
SUSE Manager Server 4.1 kernel-source Not affected
SUSE Manager Server 4.2 kernel-source Not affected
SUSE OpenStack Cloud 7 kernel-source Not affected
SUSE OpenStack Cloud 9 kernel-source Not affected
SUSE OpenStack Cloud Crowbar 9 kernel-source Not affected
SUSE Real Time Module 15 SP1 kernel-source-rt Unsupported
SUSE Real Time Module 15 SP3 kernel-source-rt Not affected
SUSE Real Time Module 15 SP4 kernel-source-rt Affected
SUSE Real Time Module 15 SP5 kernel-source-rt Not affected
openSUSE Leap 15.3 kernel-source Not affected
openSUSE Leap 15.3 kernel-source-rt Not affected
openSUSE Leap 15.4 kernel-source Affected
openSUSE Leap 15.4 kernel-source-azure Unsupported
openSUSE Leap 15.4 kernel-source-rt Affected
openSUSE Leap 15.5 kernel-source Not affected
openSUSE Leap 15.5 kernel-source-azure Unsupported
openSUSE Leap 15.5 kernel-source-rt Not affected


SUSE Timeline for this CVE

CVE page created: Tue May 6 12:10:27 2025
CVE page last modified: Mon Jul 7 12:18:01 2025