lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <2025061842-CVE-2022-50206-24d2@gregkh>
Date: Wed, 18 Jun 2025 13:04:31 +0200
From: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
To: linux-cve-announce@...r.kernel.org
Cc: Greg Kroah-Hartman <gregkh@...nel.org>
Subject: CVE-2022-50206: arm64: fix oops in concurrently setting insn_emulation sysctls

From: Greg Kroah-Hartman <gregkh@...nel.org>

Description
===========

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

arm64: fix oops in concurrently setting insn_emulation sysctls

emulation_proc_handler() changes table->data for proc_dointvec_minmax
and can generate the following Oops if called concurrently with itself:

 | Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010
 | Internal error: Oops: 96000006 [#1] SMP
 | Call trace:
 | update_insn_emulation_mode+0xc0/0x148
 | emulation_proc_handler+0x64/0xb8
 | proc_sys_call_handler+0x9c/0xf8
 | proc_sys_write+0x18/0x20
 | __vfs_write+0x20/0x48
 | vfs_write+0xe4/0x1d0
 | ksys_write+0x70/0xf8
 | __arm64_sys_write+0x20/0x28
 | el0_svc_common.constprop.0+0x7c/0x1c0
 | el0_svc_handler+0x2c/0xa0
 | el0_svc+0x8/0x200

To fix this issue, keep the table->data as &insn->current_mode and
use container_of() to retrieve the insn pointer. Another mutex is
used to protect against the current_mode update but not for retrieving
insn_emulation as table->data is no longer changing.

The Linux kernel CVE team has assigned CVE-2022-50206 to this issue.


Affected and fixed versions
===========================

	Fixed in 4.14.291 with commit 9d5fec6ba2e4117d196a8259ab54615ffe562460
	Fixed in 4.19.256 with commit b51881b1da57fe9877125dfdd0aac5172958fcfd
	Fixed in 5.4.211 with commit 04549063d5701976034d8c2bfda3d3a8cbf0409f
	Fixed in 5.10.137 with commit 353b4673d01c512303c45cf2346f630cda73b5c9
	Fixed in 5.15.61 with commit cc69ef95988b9ef2fc730ec452a7441efb90ef5e
	Fixed in 5.18.18 with commit 6a2fd114678d7fc1b5a0f8865ae98f1c17787455
	Fixed in 5.19.2 with commit 07022e07017ee5540f5559b0aeb916e8383c1e1a
	Fixed in 6.0 with commit af483947d472eccb79e42059276c4deed76f99a6

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2022-50206
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	arch/arm64/kernel/armv8_deprecated.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/9d5fec6ba2e4117d196a8259ab54615ffe562460
	https://git.kernel.org/stable/c/b51881b1da57fe9877125dfdd0aac5172958fcfd
	https://git.kernel.org/stable/c/04549063d5701976034d8c2bfda3d3a8cbf0409f
	https://git.kernel.org/stable/c/353b4673d01c512303c45cf2346f630cda73b5c9
	https://git.kernel.org/stable/c/cc69ef95988b9ef2fc730ec452a7441efb90ef5e
	https://git.kernel.org/stable/c/6a2fd114678d7fc1b5a0f8865ae98f1c17787455
	https://git.kernel.org/stable/c/07022e07017ee5540f5559b0aeb916e8383c1e1a
	https://git.kernel.org/stable/c/af483947d472eccb79e42059276c4deed76f99a6

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ