CVE-2026-80755 in Linuxinfo

Summary

by MITRE • 09/03/2026

In the Linux kernel, the following vulnerability has been resolved:

selinux: reject a permission value exceeding the class permission count

perm_read() bounds a permission value by SEL_VEC_MAX but never by the nprim of the owning class or common, which is taken verbatim from the policy image. security_get_permissions() then writes perms[value - 1]
into an nprim-sized kcalloc() array, so a class declaring fewer permissions than its largest permission value drives an out-of-bounds heap write. The top-level symbol tables are validated this way; the nested per-class permission table is not.

Reject a permission whose value exceeds nprim, which is already set when perm_read() runs. Well-formed policies are unaffected.

[PM: tweak comment for line length]

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 09/03/2026

The Linux Security Modules framework, specifically the Security-Enhanced Linux (SELinux) subsystem, contains a critical out-of-bounds heap write vulnerability within its policy parsing logic. This flaw originates in the perm_read function, which is responsible for reading permission values from SELinux policy images. The existing implementation performs bounds checking against SEL_VEC_MAX, a global constant representing the maximum number of permissions across all classes. However, it fails to validate that individual permission values do not exceed nprim, which represents the actual count of permissions defined for the specific class or common being processed in the current context. This oversight creates a discrepancy between the validated range and the allocated memory size for per-class data structures.

The operational impact of this vulnerability is severe due to its potential for arbitrary code execution or system compromise. When security_get_permissions processes these unchecked values, it calculates an index by subtracting one from the permission value and uses it to write into a kcalloc-allocated array sized exactly according to nprim. If a maliciously crafted SELinux policy image contains a class with fewer permissions than its highest declared permission value, this calculation results in writing data beyond the bounds of the allocated heap memory. This out-of-bounds write can corrupt adjacent kernel objects, overwrite function pointers, or alter control flow mechanisms within the kernel space. Since this occurs during the loading and validation of security policies, an attacker with access to modify policy files could exploit this flaw to escalate privileges from a standard user context to root level, effectively gaining full control over the affected system.

This vulnerability is categorized under CWE-787: Out-of-bounds Write, as it involves writing data to a memory location outside the intended buffer boundaries. From an offensive security perspective, such heap corruption techniques are often associated with ATT&CK technique T1059: Command and Scripting Interpreter or more specifically exploitation patterns related to privilege escalation via kernel vulnerabilities. The root cause lies in insufficient validation of input parameters derived from external policy sources before they are used for memory allocation indexing operations. While the top-level symbol tables undergo proper validation, the nested per-class permission table logic lacks this critical check, creating an inconsistent security posture within the same subsystem.

Mitigation strategies must address both immediate remediation and long-term defensive coding practices. The primary fix involves modifying perm_read to explicitly reject any permission value that exceeds nprim for the owning class or common at runtime during policy parsing. This ensures that only well-formed policies with consistent permission definitions are accepted, preventing the out-of-bounds condition from ever occurring. System administrators should ensure their SELinux policies adhere strictly to defined standards and avoid using untrusted sources for policy updates. Furthermore, developers implementing similar security modules should enforce strict bounds checking against specific object sizes rather than relying solely on global maximums, ensuring that memory access patterns remain within allocated limits regardless of input content variations.

Responsible

Linux

Reservation

08/26/2026

Disclosure

09/03/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!