{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2026-23408", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2026-01-13T15:37:46.013Z", "datePublished": "2026-04-01T08:36:37.873Z", "dateUpdated": "2026-08-05T12:21:29.316Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T12:21:29.316Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\napparmor: Fix double free of ns_name in aa_replace_profiles()\n\nif ns_name is NULL after\n1071 error = aa_unpack(udata, &lh, &ns_name);\n\nand if ent->ns_name contains an ns_name in\n1089 } else if (ent->ns_name) {\n\nthen ns_name is assigned the ent->ns_name\n1095 ns_name = ent->ns_name;\n\nhowever ent->ns_name is freed at\n1262 aa_load_ent_free(ent);\n\nand then again when freeing ns_name at\n1270 kfree(ns_name);\n\nFix this by NULLing out ent->ns_name after it is transferred to ns_name\n\n\")" } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The vulnerability is triggered by writing to AppArmor's securityfs interface (.load or .replace files), which requires local system access.\nAC:L - The double free is deterministic and triggered reliably by loading a policy where ent->ns_name is set and ns_name is NULL after aa_unpack(). No race condition or special conditions are needed.\nPR:L - CAP_MAC_ADMIN is required but can be obtained via user namespaces with the default unprivileged_userns_apparmor_policy=1 setting, making this reachable by unprivileged local users.\nUI:N - No user interaction is required; the attacker can trigger the vulnerability entirely by loading crafted AppArmor policy data.\nS:U - The vulnerability stays within the kernel's security authority; there is no crossing of a security boundary like a VM escape or sandbox escape.\nC:H - A double free enables use-after-free conditions where the attacker can control freed object contents via heap spraying, allowing arbitrary kernel memory reads.\nI:H - The double free enables heap corruption and arbitrary write primitives through heap spraying, potentially allowing kernel code execution.\nA:H - A double free causes immediate kernel heap corruption which can lead to kernel crashes (panic/oops) even without deliberate exploitation." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "security/apparmor/policy.c" ], "versions": [ { "version": "145a0ef21c8e944957f58e2c8ffcd8a10f46266a", "lessThan": "c6347a2116ecccb8fd9ee4ebc75ae41d1d7ef689", "status": "affected", "versionType": "git" }, { "version": "145a0ef21c8e944957f58e2c8ffcd8a10f46266a", "lessThan": "c053ae381ce227577567d1ef10090ce7506d7a28", "status": "affected", "versionType": "git" }, { "version": "145a0ef21c8e944957f58e2c8ffcd8a10f46266a", "lessThan": "35f4caec1352054b9a61cfdf2bf1898073637aa0", "status": "affected", "versionType": "git" }, { "version": "145a0ef21c8e944957f58e2c8ffcd8a10f46266a", "lessThan": "55ef2af7490aaf72f8ffe11ec44c6bcb7eb2162a", "status": "affected", "versionType": "git" }, { "version": "145a0ef21c8e944957f58e2c8ffcd8a10f46266a", "lessThan": "86feeccd6b93ed94bd6655f30de80f163f8d5a45", "status": "affected", "versionType": "git" }, { "version": "145a0ef21c8e944957f58e2c8ffcd8a10f46266a", "lessThan": "7998ab3010d2317643f91828f1853d954ef31387", "status": "affected", "versionType": "git" }, { "version": "145a0ef21c8e944957f58e2c8ffcd8a10f46266a", "lessThan": "18b5233e860c294a847ee07869d93c0b8673a54b", "status": "affected", "versionType": "git" }, { "version": "145a0ef21c8e944957f58e2c8ffcd8a10f46266a", "lessThan": "5df0c44e8f5f619d3beb871207aded7c78414502", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "security/apparmor/policy.c" ], "versions": [ { "version": "5.5", "status": "affected" }, { "version": "0", "lessThan": "5.5", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.253", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.203", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.169", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.130", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.77", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.18.18", "lessThanOrEqual": "6.18.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.19.8", "lessThanOrEqual": "6.19.*", "status": "unaffected", "versionType": "semver" }, { "version": "7.0", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.5", "versionEndExcluding": "5.10.253" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.5", "versionEndExcluding": "5.15.203" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.5", "versionEndExcluding": "6.1.169" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.5", "versionEndExcluding": "6.6.130" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.5", "versionEndExcluding": "6.12.77" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.5", "versionEndExcluding": "6.18.18" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.5", "versionEndExcluding": "6.19.8" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.5", "versionEndExcluding": "7.0" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/c6347a2116ecccb8fd9ee4ebc75ae41d1d7ef689" }, { "url": "https://git.kernel.org/stable/c/c053ae381ce227577567d1ef10090ce7506d7a28" }, { "url": "https://git.kernel.org/stable/c/35f4caec1352054b9a61cfdf2bf1898073637aa0" }, { "url": "https://git.kernel.org/stable/c/55ef2af7490aaf72f8ffe11ec44c6bcb7eb2162a" }, { "url": "https://git.kernel.org/stable/c/86feeccd6b93ed94bd6655f30de80f163f8d5a45" }, { "url": "https://git.kernel.org/stable/c/7998ab3010d2317643f91828f1853d954ef31387" }, { "url": "https://git.kernel.org/stable/c/18b5233e860c294a847ee07869d93c0b8673a54b" }, { "url": "https://git.kernel.org/stable/c/5df0c44e8f5f619d3beb871207aded7c78414502" } ], "title": "apparmor: Fix double free of ns_name in aa_replace_profiles()", "x_generator": { "engine": "bippy-1.2.0" } } } }