# CVE-2026-63827: apparmor: fix use-after-free in rawdata dedup loop

CVE-2026-63827 is fixed in 17 products on 1 platform, first by DEBIAN-CVE-2026-63827, released July 20, 2026. It is not reported as exploited. Patch Radar priority: Urgent.

- Web page: https://patchblox.com/security/cve/CVE-2026-63827
- Priority: Urgent
- CVSS: 9.8 (Critical)
- EPSS: 0.0012
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Jul 19, 2026
- Vendor advisory: https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-63827

## Description

In the Linux kernel, the following vulnerability has been resolved:  apparmor: fix use-after-free in rawdata dedup loop  aa_replace_profiles() walks ns->rawdata_list to dedup the incoming policy blob against entries already attached to existing profiles. Per the kernel-doc on struct aa_loaddata, list membership does not hold a reference: profiles hold pcount, and when the last pcount drops, do_ploaddata_rmfs() is queued on a workqueue that takes ns->lock and removes the entry. Between dropping the last pcount and the workqueue running, an entry remains on the list with pcount == 0.  aa_get_profile_loaddata() is an unconditional kref_get() on pcount, so when the dedup loop hits such an entry, refcount hardening reports    refcount_t: addition on 0; use-after-free.  inside aa_replace_profiles(), and the poisoned counter then trips "saturated" and "underflow" warnings on the subsequent uses of the same loaddata.  Before commit a0b7091c4de4 ("apparmor: fix race on rawdata dereference") the dedup path used a get_unless_zero-style helper on a single counter, so the existing "if (tmp)" guard was meaningful. The split-refcount refactor introduced aa_get_profile_loaddata(), which has plain kref_get() semantics, and the guard quietly became a no-op.  Introduce aa_get_profile_loaddata_not0(), matching the existing _not0 convention used by aa_get_profile_not0(), and use it for the rawdata_list dedup lookup so dying entries are skipped.  Reproduced on x86_64 with v7.1-rc5 in QEMU+KVM running Ubuntu 24.04 + stress-ng 0.17.06:    stress-ng --apparmor 1 --klog-check --timeout 60s  Without this patch the three refcount_t warnings fire within a few seconds. With it the same 60 s run is clean. Coverage is a smoke-test only; a longer soak with CONFIG_KASAN, CONFIG_KCSAN and CONFIG_PROVE_LOCKING would be welcome from anyone with the cycles.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | dtb-aarch64 opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-64kb opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-64kb sles 15.7 | 6.4.0-150700.53.81.1 | [SUSE-SU-2026:4254-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4254-1.md) | Oct 7, 2026 |
| Linux | kernel-64kb sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-azure opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-azure sles 15.7 | 6.4.0-150700.53.81.1 | [SUSE-SU-2026:4254-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4254-1.md) | Oct 7, 2026 |
| Linux | kernel-azure sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-default opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-default sles 15.6 | 6.4.0-150600.23.135.1 | [SUSE-SU-2026:4369-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4369-1.md) | Oct 2, 2026 |
| Linux | kernel-default sles 15.7 | 6.4.0-150700.53.81.1 | [SUSE-SU-2026:4254-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4254-1.md) | Oct 7, 2026 |
| Linux | kernel-default sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23237-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23237-1.md) | Aug 11, 2026 |
| Linux | kernel-default-base opensuse-leap 16.0 | 6.12.0-160000.37.1.160000.2.19 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-default-base sles 15.6 | 6.4.0-150600.23.135.1.150600.12.62.4 | [SUSE-SU-2026:4369-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4369-1.md) | Oct 2, 2026 |
| Linux | kernel-default-base sles 15.7 | 6.4.0-150700.53.81.1.150700.17.45.1 | [SUSE-SU-2026:4254-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4254-1.md) | Oct 7, 2026 |
| Linux | kernel-default-base sles 16.0 | 6.12.0-160000.37.1.160000.2.19 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-docs opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-docs sles 15.6 | 6.4.0-150600.23.135.1 | [SUSE-SU-2026:4369-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4369-1.md) | Oct 2, 2026 |
| Linux | kernel-docs sles 15.7 | 6.4.0-150700.53.81.1 | [SUSE-SU-2026:4254-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4254-1.md) | Oct 7, 2026 |
| Linux | kernel-docs sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-kvmsmall opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-kvmsmall sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-livepatch-SLE15-SP6_Update_31 sles 15.6 | 1-150600.13.3.4 | [SUSE-SU-2026:4369-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4369-1.md) | Oct 2, 2026 |
| Linux | kernel-livepatch-SLE15-SP7-RT_Update_20 sles 15.7 | 1-150700.1.3.1 | [SUSE-SU-2026:4120-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4120-1.md) | Sep 10, 2026 |
| Linux | kernel-livepatch-SLE15-SP7_Update_21 sles 15.7 | 1-150700.15.3.1 | [SUSE-SU-2026:4254-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4254-1.md) | Oct 7, 2026 |
| Linux | kernel-obs-build opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-obs-build sles 15.6 | 6.4.0-150600.23.135.1 | [SUSE-SU-2026:4369-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4369-1.md) | Oct 2, 2026 |
| Linux | kernel-obs-build sles 15.7 | 6.4.0-150700.53.81.1 | [SUSE-SU-2026:4254-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4254-1.md) | Oct 7, 2026 |
| Linux | kernel-obs-qa opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-obs-qa sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-rt opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-source opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-source sles 15.6 | 6.4.0-150600.23.135.1 | [SUSE-SU-2026:4369-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4369-1.md) | Oct 2, 2026 |
| Linux | kernel-source sles 15.7 | 6.4.0-150700.53.81.1 | [SUSE-SU-2026:4254-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4254-1.md) | Oct 7, 2026 |
| Linux | kernel-source sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-syms opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-syms sles 15.6 | 6.4.0-150600.23.135.1 | [SUSE-SU-2026:4369-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4369-1.md) | Oct 2, 2026 |
| Linux | kernel-syms sles 15.7 | 6.4.0-150700.53.81.1 | [SUSE-SU-2026:4254-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4254-1.md) | Oct 7, 2026 |
| Linux | kernel-syms sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | kernel-zfcpdump opensuse-leap 16.0 | 6.12.0-160000.37.1 | [OPENSUSE-SU-2026:21555-1](https://patchblox.com/security/data/fix/linux/opensuse-su-2026-21555-1.md) | Aug 12, 2026 |
| Linux | kernel-zfcpdump sles 15.7 | 6.4.0-150700.53.81.1 | [SUSE-SU-2026:4254-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-4254-1.md) | Oct 7, 2026 |
| Linux | kernel-zfcpdump sles 16.0 | 6.12.0-160000.37.1 | [SUSE-SU-2026:23231-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-23231-1.md) | Aug 11, 2026 |
| Linux | linux Debian 12.15 (bookworm) | 6.1.177-1 | [DEBIAN-CVE-2026-63827](https://patchblox.com/security/data/fix/linux/debian-cve-2026-63827.md) | Jul 20, 2026 |
| Linux | linux Debian 13.5 (trixie) | 6.12.95-1 | [DEBIAN-CVE-2026-63827](https://patchblox.com/security/data/fix/linux/debian-cve-2026-63827.md) | Jul 20, 2026 |
| Linux | linux Debian 14 | 7.1.3-1 | [DEBIAN-CVE-2026-63827](https://patchblox.com/security/data/fix/linux/debian-cve-2026-63827.md) | Jul 20, 2026 |

---

Data as of 2026-11-10T01:44:33Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
