---
id: CVE-2026-98413
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  selinux: always fill AVC decision in avc_has_perm_noaudit()

  avc_has_perm_noaudit() is documented to return a copy of the access
  decision in @avd, but its early return …
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  selinux: always fill AVC decision in avc_has_perm_noaudit()

  avc_has_perm_noaudit() is documented to return a copy of the access
  decision in @avd, but its early return …
severity: none
published: '2026-10-14'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T14:17:52.547'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-98413'
references:
  - url: 'https://git.kernel.org/stable/c/24e00850bcff46b984f4c44b92e5499450fcfb5a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/5a6f9a872b4ff68877caf998bee352153b7154bc'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/835133337c2ce200db56f62d018c79087dee2603'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/8861db305103107199b1426f25fde1fb6d465583'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/c781e737aa0de95289b1774d5fd29388895737a9'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/e308c5acfe283a66627fc407065626df4ab753ec'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/e77461af13eab5c9a953cc52ec8432cc941d61e2'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/f9da796fa238f8e4414ee8481e6c979759a3d563'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
ingestedAt: '2026-10-14T15:36:13.985Z'
---

## Overview

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

selinux: always fill AVC decision in avc_has_perm_noaudit()

avc_has_perm_noaudit() is documented to return a copy of the access
decision in @avd, but its early return for an empty requested permission
set leaves the buffer untouched.  All callers pass an uninitialized
stack variable and afterwards feed it to avc_audit(), and the inode hook
even stores it in the per-task decision cache.

Fill in a deny-all, audit-all decision, similar to avd_init(), so every
caller receives a defined value at no cost on the hot path.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
