CVE-2023-52443

apparmor: avoid crash when parsed profile name is empty

Published Feb 22, 2024 CVSS 3.1 · 5.5 Medium EPSS < 1% KEV · Not listed
Description
In the Linux kernel, the following vulnerability has been resolved:

apparmor: avoid crash when parsed profile name is empty

When processing a packed profile in unpack_profile() described like

"profile :ns::samba-dcerpcd /usr/lib*/samba/{,samba/}samba-dcerpcd {...}"

a string ":samba-dcerpcd" is unpacked as a fully-qualified name and then
passed to aa_splitn_fqname().

aa_splitn_fqname() treats ":samba-dcerpcd" as only containing a namespace.
Thus it returns NULL for tmpname, meanwhile tmpns is non-NULL. Later
aa_alloc_profile() crashes as the new profile name is NULL now.

general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
CPU: 6 PID: 1657 Comm: apparmor_parser Not tainted 6.7.0-rc2-dirty #16
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-3-gd478f380-rebuilt.opensuse.org 04/01/2014
RIP: 0010:strlen+0x1e/0xa0
Call Trace:
<TASK>
? strlen+0x1e/0xa0
aa_policy_init+0x1bb/0x230
aa_alloc_profile+0xb1/0x480
unpack_profile+0x3bc/0x4960
aa_unpack+0x309/0x15e0
aa_replace_profiles+0x213/0x33c0
policy_update+0x261/0x370
profile_replace+0x20e/0x2a0
vfs_write+0x2af/0xe00
ksys_write+0x126/0x250
do_syscall_64+0x46/0xf0
entry_SYSCALL_64_after_hwframe+0x6e/0x76
</TASK>
---[ end trace 0000000000000000 ]---
RIP: 0010:strlen+0x1e/0xa0

It seems such behaviour of aa_splitn_fqname() is expected and checked in
other places where it is called (e.g. aa_remove_profiles). Well, there
is an explicit comment "a ns name without a following profile is allowed"
inside.

AFAICS, nothing can prevent unpacked "name" to be in form like
":samba-dcerpcd" - it is passed from userspace.

Deny the whole profile set replacement in such case and inform user with
EPROTO and an explaining message.

Found by Linux Verification Center (linuxtesting.org).

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-3840-1 linux security update
Debian DLA Debian DLA DLA-3841-1 linux-5.10 security update
Ubuntu USN Ubuntu USN USN-6688-1 Linux kernel (OEM) vulnerabilities
Ubuntu USN Ubuntu USN USN-6725-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-6725-2 Linux kernel (AWS) vulnerabilities
Ubuntu USN Ubuntu USN USN-6726-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-6726-2 Linux kernel (IoT) vulnerabilities
Ubuntu USN Ubuntu USN USN-6726-3 Linux kernel (Xilinx ZynqMP) vulnerabilities
Ubuntu USN Ubuntu USN USN-6818-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-6818-2 Linux kernel (ARM laptop) vulnerabilities
Ubuntu USN Ubuntu USN USN-6818-3 Linux kernel (NVIDIA) vulnerabilities
Ubuntu USN Ubuntu USN USN-6818-4 Linux kernel (HWE) vulnerabilities
Ubuntu USN Ubuntu USN USN-6819-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-6819-2 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-6819-3 Linux kernel (OEM) vulnerabilities
Ubuntu USN Ubuntu USN USN-6819-4 Linux kernel (Oracle) vulnerabilities
Ubuntu USN Ubuntu USN USN-6926-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-6926-2 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-6926-3 Linux kernel (Azure) vulnerabilities
Weaknesses

Sources

Status
PUBLISHED
Assigner
Linux
Published
Updated
May 11, 2026, 7:27 PM
Reserved
Feb 20, 2024, 12:30 PM
Status
Modified
Published
Feb 22, 2024, 5:15 PM
Modified
Jun 17, 2026, 6:42 AM