CVE-2026-23408: apparmor: Fix double free of ns_name in aa_replace_profiles()
In the Linux kernel, the following vulnerability has been resolved:
apparmor: Fix double free of ns_name in aa_replace_profiles()
if ns_name is NULL after
1071 error = aa_unpack(udata, &lh, &ns_name);
and if ent->ns_name contains an ns_name in
1089 } else if (ent->ns_name) {
then ns_name is assigned the ent->ns_name
1095 ns_name = ent->ns_name;
however ent->ns_name is freed at
1262 aa_load_ent_free(ent);
and then again when freeing ns_name at
1270 kfree(ns_name);
Fix this by NULLing out ent->ns_name after it is transferred to ns_name
")
Security readout for executives and security teams
Plain-English summary
A Linux kernel AppArmor flaw can free the same namespace-name memory twice while replacing security profiles. The supplied assessment rates it high because a local, low-privileged attacker may trigger memory corruption affecting confidentiality, integrity, or availability. It is not described as remotely exploitable.
Executive priority
Treat this as a high-priority kernel update for AppArmor-enabled, multi-user, or shared Linux systems. It does not currently warrant emergency internet-facing incident assumptions because evidence supports a local attack path and no active exploitation. Accelerate normal patching and validate actual distribution exposure.
Technical view
In aa_replace_profiles(), ns_name may take ownership of ent->ns_name after aa_unpack() returns it as NULL. aa_load_ent_free(ent) then frees that pointer, followed by a second kfree(ns_name). The stable fix clears ent->ns_name after ownership transfer, preventing the double free.
Likely exposure
Exposure concerns Linux systems running affected kernels where AppArmor profile replacement is reachable. The supplied version data covers multiple kernel branches but has ambiguous boundaries, so kernel versions alone are insufficient. Distribution backports and AppArmor configuration must be checked.
Exploitation context
The CVSS 3.1 vector is 7.8: local access, low complexity, low privileges, and no user interaction, with potentially high impact. The bundle marks KEV false and cites no active exploitation or public proof of concept. Remote exploitation is not supported by the supplied evidence.
Researcher notes
The vulnerable condition is an ownership-transfer error involving ent->ns_name and ns_name in the AppArmor profile-loading path. The fix nulls the source pointer after transfer. No CWE, exploit artifact, attack prerequisite detail beyond the CVSS vector, or evidence of successful code execution is supplied; assess those points as unresolved.
Mitigation direction
Install a vendor kernel containing the applicable stable fix or backport.
Reboot into the updated kernel after installation.
Prioritize multi-user systems where untrusted local access exists.
Consult distribution guidance when package versions do not match upstream releases.
Validation and detection
Inventory running kernel versions and determine whether AppArmor is enabled.
Map distribution kernel packages to the cited upstream fixes or documented backports.
Confirm the fixed kernel is running after reboot.
Review kernel logs for AppArmor-related crashes or memory-corruption symptoms.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-23408 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
9Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.