Missing Release of Resource after Effective Lifetime Affecting kernel6.12-headers package, versions <1:6.12.114-139.210.amzn2023


Severity

Recommended
high

Based on Amazon Linux security rating.

Threat Intelligence

EPSS
0.21% (11th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-AMZN2023-KERNEL612HEADERS-22393122
  • published10 Nov 2026
  • disclosed17 Sept 2026

Introduced: 17 Sep 2026

CVE-2026-90182  (opens in a new tab)
CWE-772  (opens in a new tab)

How to fix?

Upgrade Amazon-Linux:2023 kernel6.12-headers to version 1:6.12.114-139.210.amzn2023 or higher.
This issue was patched in ALAS2023-2026-3402.

NVD Description

Note: Versions mentioned in the description apply only to the upstream kernel6.12-headers package and not the kernel6.12-headers package as distributed by Amazon-Linux. See How to fix? for Amazon-Linux:2023 relevant fixed versions and status.

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

blk-iocost: clear delay state when freeing policy data

iocg_kick_delay() turns sufficiently large debt into an explicit block-cgroup delay with blkcg_set_delay(), setting blkg->use_delay to -1 and incrementing blkcg->congestion_count. Clearing it again depends on iocg_kick_delay() running from the period timer, the waitq timer or the issue path.

ioc_pd_free() removes the iocg from active_iocgs and cancels its waitq timer, and no further bios can arrive, so once it has run nothing is left which can reduce the debt and clear the delay. The blkcg stays marked congested for the rest of its life.

blk_cgroup_congested() then returns true for every task in that cgroup and its descendants: page_cache_sync_ra() cuts readahead to a single page, page_cache_async_ra() skips it altogether, and __folio_throttle_swaprate() takes swap_avail_lock and schedules a throttle on anonymous folio allocation.

Clear it explicitly, after the list removal and the synchronous hrtimer_cancel() so that neither timer processing nor an I/O path can re-arm it. The free callback can also see policy data which was never attached to a blkg, hence the pd->blkg check.

CVSS Base Scores

version 3.1