CVE-2026-23268 (GCVE-0-2026-23268)
Vulnerability from cvelistv5
Published
2026-03-18 17:54
Modified
2026-08-05 12:20
Summary
In the Linux kernel, the following vulnerability has been resolved: apparmor: fix unprivileged local user can do privileged policy management An unprivileged local user can load, replace, and remove profiles by opening the apparmorfs interfaces, via a confused deputy attack, by passing the opened fd to a privileged process, and getting the privileged process to write to the interface. This does require a privileged target that can be manipulated to do the write for the unprivileged process, but once such access is achieved full policy management is possible and all the possible implications that implies: removing confinement, DoS of system or target applications by denying all execution, by-passing the unprivileged user namespace restriction, to exploiting kernel bugs for a local privilege escalation. The policy management interface can not have its permissions simply changed from 0666 to 0600 because non-root processes need to be able to load policy to different policy namespaces. Instead ensure the task writing the interface has privileges that are a subset of the task that opened the interface. This is already done via policy for confined processes, but unconfined can delegate access to the opened fd, by-passing the usual policy check.
Impacted products
Vendor Product Version
Linux Linux Version: b7fd2c0340eacbee892425e9007647568b7f2a3c
Version: b7fd2c0340eacbee892425e9007647568b7f2a3c
Version: b7fd2c0340eacbee892425e9007647568b7f2a3c
Version: b7fd2c0340eacbee892425e9007647568b7f2a3c
Version: b7fd2c0340eacbee892425e9007647568b7f2a3c
Version: b7fd2c0340eacbee892425e9007647568b7f2a3c
Version: b7fd2c0340eacbee892425e9007647568b7f2a3c
Version: b7fd2c0340eacbee892425e9007647568b7f2a3c
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "security/apparmor/apparmorfs.c",
            "security/apparmor/include/policy.h",
            "security/apparmor/policy.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "a407a078cd41b5261b99d822af784bd9f136eb4d",
              "status": "affected",
              "version": "b7fd2c0340eacbee892425e9007647568b7f2a3c",
              "versionType": "git"
            },
            {
              "lessThan": "4cafce4d6d0a66ec27e3af5637c11901d60189fa",
              "status": "affected",
              "version": "b7fd2c0340eacbee892425e9007647568b7f2a3c",
              "versionType": "git"
            },
            {
              "lessThan": "33ee909702e047c94aaf41d4eea35626d509802c",
              "status": "affected",
              "version": "b7fd2c0340eacbee892425e9007647568b7f2a3c",
              "versionType": "git"
            },
            {
              "lessThan": "17debf5586020790b5717f96e5e6a3ca5bb961ab",
              "status": "affected",
              "version": "b7fd2c0340eacbee892425e9007647568b7f2a3c",
              "versionType": "git"
            },
            {
              "lessThan": "0fc63dd9170643d15c25681fca792539e23f4640",
              "status": "affected",
              "version": "b7fd2c0340eacbee892425e9007647568b7f2a3c",
              "versionType": "git"
            },
            {
              "lessThan": "b60b3f7a35c46b2e0ca934f9c988b8fca06d76c6",
              "status": "affected",
              "version": "b7fd2c0340eacbee892425e9007647568b7f2a3c",
              "versionType": "git"
            },
            {
              "lessThan": "b6a94eeca9c6c8f7c55ad44c62c98324f51ec596",
              "status": "affected",
              "version": "b7fd2c0340eacbee892425e9007647568b7f2a3c",
              "versionType": "git"
            },
            {
              "lessThan": "6601e13e82841879406bf9f369032656f441a425",
              "status": "affected",
              "version": "b7fd2c0340eacbee892425e9007647568b7f2a3c",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "security/apparmor/apparmorfs.c",
            "security/apparmor/include/policy.h",
            "security/apparmor/policy.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.11"
            },
            {
              "lessThan": "4.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.253",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.203",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.169",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.130",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.77",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.18",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.19.*",
              "status": "unaffected",
              "version": "6.19.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.253",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.203",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.169",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.130",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.77",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.18",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19.8",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0",
                  "versionStartIncluding": "4.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\napparmor: fix unprivileged local user can do privileged policy management\n\nAn unprivileged local user can load, replace, and remove profiles by\nopening the apparmorfs interfaces, via a confused deputy attack, by\npassing the opened fd to a privileged process, and getting the\nprivileged process to write to the interface.\n\nThis does require a privileged target that can be manipulated to do\nthe write for the unprivileged process, but once such access is\nachieved full policy management is possible and all the possible\nimplications that implies: removing confinement, DoS of system or\ntarget applications by denying all execution, by-passing the\nunprivileged user namespace restriction, to exploiting kernel bugs for\na local privilege escalation.\n\nThe policy management interface can not have its permissions simply\nchanged from 0666 to 0600 because non-root processes need to be able\nto load policy to different policy namespaces.\n\nInstead ensure the task writing the interface has privileges that\nare a subset of the task that opened the interface. This is already\ndone via policy for confined processes, but unconfined can delegate\naccess to the opened fd, by-passing the usual policy check."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The attacker must be a local user to open the apparmorfs interface files and pass the file descriptor to a privileged process via local IPC mechanisms.\nAC:L - On typical Linux systems (desktop, server, Android), privileged daemons that accept and act on fds from unprivileged users are common (D-Bus services, systemd units). The attacker can reliably identify and leverage such confused deputies.\nPR:L - Requires a basic unprivileged local user account. The apparmorfs interface files are created with 0666 permissions, so any local user can open them.\nUI:N - No user interaction is needed. The confused deputy is a system service/daemon that can be programmatically triggered, not a human user who must take action.\nS:U - The vulnerability and its impact remain within the kernel security authority. While AppArmor policy manipulation is severe, it is standard kernel privilege escalation within the same security domain.\nC:H - By removing AppArmor confinement profiles, the attacker can access information previously protected by mandatory access control policies, enabling arbitrary information disclosure.\nI:H - The attacker gains full policy management capabilities: loading arbitrary policies, replacing existing ones, and removing confinement. This allows arbitrary modification of the system\u0027s mandatory access control, fundamentally compromising integrity.\nA:H - As stated in the commit, the attacker can cause DoS of the system or target applications by loading policies that deny all execution, effectively making the system non-functional."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:20:58.461Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/a407a078cd41b5261b99d822af784bd9f136eb4d"
        },
        {
          "url": "https://git.kernel.org/stable/c/4cafce4d6d0a66ec27e3af5637c11901d60189fa"
        },
        {
          "url": "https://git.kernel.org/stable/c/33ee909702e047c94aaf41d4eea35626d509802c"
        },
        {
          "url": "https://git.kernel.org/stable/c/17debf5586020790b5717f96e5e6a3ca5bb961ab"
        },
        {
          "url": "https://git.kernel.org/stable/c/0fc63dd9170643d15c25681fca792539e23f4640"
        },
        {
          "url": "https://git.kernel.org/stable/c/b60b3f7a35c46b2e0ca934f9c988b8fca06d76c6"
        },
        {
          "url": "https://git.kernel.org/stable/c/b6a94eeca9c6c8f7c55ad44c62c98324f51ec596"
        },
        {
          "url": "https://git.kernel.org/stable/c/6601e13e82841879406bf9f369032656f441a425"
        },
        {
          "url": "https://www.qualys.com/2026/03/10/crack-armor.txt"
        }
      ],
      "title": "apparmor: fix unprivileged local user can do privileged policy management",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-23268",
    "datePublished": "2026-03-18T17:54:41.974Z",
    "dateReserved": "2026-01-13T15:37:45.991Z",
    "dateUpdated": "2026-08-05T12:20:58.461Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…