Summary
| Field | Detail |
|---|---|
| CVE ID | CVE-2026-68138 |
| Alias | None — neither the kernel CNA record nor the public PoC gives it a nickname |
| Component | Kernel: net/sched rate-table management — the process-global qdisc_rtab_list and the non-atomic refcount mutated by qdisc_get_rtab() / qdisc_put_rtab() (net/sched/sch_api.c) |
| Type | Race condition → use-after-free / double-free of a struct qdisc_rate_table (a 1056-byte object from kmalloc-2k) |
| Impact | Kernel heap corruption reachable locally and weaponised to local privilege escalation to root — a public exploit (aramosf/CVE-2026-68138) escalates an unprivileged user to root. Also a repeatable KASAN slab-UAF / double-free that panics the kernel (DoS) |
| Upstream fix | f43ee0c0730d (net/sched: serialize qdisc_rtab_list against concurrent get/put); first in v7.2-rc5, backported to stable 7.1.6 (fb29e1b41052). Adds a dedicated qdisc_rtab_lock spinlock |
| Introduced | 470502de5bdb (net: sched: unlock rules update API) in v5.1 — the unlocked classifier path that lets cls_flower reach qdisc_get_rtab()/qdisc_put_rtab() without the RTNL mutex. The rate-table code is older, but the race only became reachable here |
| Affected window | 5.1 through 7.1.5 (and 7.2 before -rc5) without the fix. Fixed in v7.2-rc5 and the 7.1.6 stable release — no other stable line has the backport yet (per-branch First fixed below) |
| Discoverer | A. Ramos (@aramosf) — research and public exploit |
| Public disclosure | 2026-08-10 (CVE published by the kernel CNA); PoC repository published 2026-08-12 |
| Public PoC | Yes — a complete working exploit. aramosf/CVE-2026-68138 ships exploit.c, escalating uid=1000 to root in the initial namespace; the author reports it reproduced against Ubuntu 22.04 GA (5.15.0-187) |
| KEV / EPSS / CVSS | Kernel CNA CVSS 3.1 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H); Red Hat scores it 7.0 HIGH (AV:L/AC:H/…), differing only on attack complexity. NVD carries the CNA score (status Received, no independent analysis yet). Not in KEV; EPSS ~0.13%. See Scoring below |
| Reachability | A local trigger only. It needs the cls_flower classifier and act_police action (both autoload on a tc … flower … action police command), at least two CPUs to win the race, and CAP_NET_ADMIN in a network namespace. An unprivileged user obtains that with unshare -Urn where unprivileged user namespaces are enabled; a process or container already holding CAP_NET_ADMIN reaches it directly. The vulnerable code is built into every kernel with CONFIG_NET_SCHED — there is no “module not present” escape |
⚠️ A local root exploit is public and most distributions are unpatched. The fix shipped upstream in v7.2-rc5 and the 7.1.6 stable release, but at the time of writing no maintained 6.x or 5.x stable line carries the backport, and no Debian, Ubuntu, Proxmox, NixOS, Rocky/RHEL, or Amazon Linux kernel has shipped a fix. Red Hat has marked RHEL 9 and 10 “Will not fix.” Treat any multi-tenant or container host where unprivileged users or containers can reach
CAP_NET_ADMINas directly exposed, and prioritise the mitigations below until a patched kernel is available.
How the exploitation chain works
qdisc_get_rtab() and qdisc_put_rtab() manage a single process-global
singly linked list, qdisc_rtab_list, and a plain non-atomic int refcnt
on each struct qdisc_rate_table. That was only ever safe because every
caller held the RTNL mutex, which serialised all rate-table lookups,
inserts, and frees.
That invariant broke when the classifier-update path was unlocked. Since
cls_flower sets TCF_PROTO_OPS_DOIT_UNLOCKED, tc_new_tfilter()
keeps rtnl_held == false for it and sets TCA_ACT_FLAGS_NO_RTNL. That
flag propagates through
tcf_exts_validate_ex() → tcf_action_init() → tcf_action_init_1() →
tcf_police_init(), which calls qdisc_get_rtab() / qdisc_put_rtab()
with the RTNL mutex not held. Two RTM_NEWTFILTER requests on
different CPUs, each adding a flower filter with a police action carrying
the same rate table, then race on qdisc_rtab_list and on the
non-atomic refcount:
BUG: KASAN: slab-use-after-free in qdisc_put_rtab+0x12f/0x160
qdisc_put_rtab+0x12f/0x160
tcf_police_init+0xda9/0x1590
tcf_action_init_1+0x460/0x6b0
tcf_action_init+0x439/0xa40
tcf_exts_validate_ex+0x42d/0x550
fl_change+0xddd/0x7da0
tc_new_tfilter+0xaa7/0x2420
rtnetlink_rcv_msg+0x95e/0xe90
The corrupted object is a ~1056-byte struct qdisc_rate_table from the
kmalloc-2k slab, and because qdisc_rtab_list is a single global (not
per-netns), the
damage is shared system-wide. From that use-after-free / double-free the
public exploit builds a five-stage chain to root:
- Win the race. Worker threads in separate network namespaces install
flower filters with police actions carrying identical rates, racing
qdisc_get_rtab()/qdisc_put_rtab()until the rate table is freed with a dangling reference still live. - Reclaim the freed object. A classic-BPF filter program whose
instruction buffer lands in
kmalloc-2kreoccupies the freed rate-table slot with attacker-controlled bytes. - Leak. The alias is turned into a
pipe_bufferdisclosure, leaking live kernel pointers (apageand anopspointer). - Overwrite. A forged, mergeable pipe buffer appends attacker bytes to
the page-cache page backing
/sbin/modprobe. - Root. Opening a socket with an unsupported protocol triggers a
module-load, running the overwritten
modprobeas root.
The fix, f43ee0c0730d, protects qdisc_rtab_list and the
refcount with a dedicated qdisc_rtab_lock spinlock. The sleeping
GFP_KERNEL allocation in qdisc_get_rtab() is done before the lock is
taken; if a concurrent inserter added an identical table meanwhile, the
freshly allocated one is freed under the lock, so no duplicate leaks.
ℹ️ The race began at v5.1, not with the rate-table code itself.
qdisc_get_rtab()/qdisc_put_rtab()are far older, but they were safe as long as every caller held the RTNL mutex. The unlocked classifier path (470502de5bdb, v5.1) is what letcls_flowerreach them concurrently — so a kernel whosenet/schedpredates that path is genuinely not affected, while every maintained line from 5.1 onward is in-window until it carries the fix.
Vulnerable commit range
| Commit | Role | Description |
|---|---|---|
470502de5bdb | Introduced | net: sched: unlock rules update API (v5.1, 2019) — makes cls_flower TCF_PROTO_OPS_DOIT_UNLOCKED, so tcf_police_init() can reach qdisc_get_rtab()/qdisc_put_rtab() without RTNL, exposing the unlocked global list + refcount to a race. |
f43ee0c0730d | Fixed | net/sched: serialize qdisc_rtab_list against concurrent get/put — adds a dedicated qdisc_rtab_lock spinlock around the list and the refcount; first released in v7.2-rc5, backported to stable 7.1.6 as fb29e1b41052. |
The reachable window runs from v5.1 through v7.1.5 (and 7.2 before
-rc5). A kernel is safe only by carrying the fix, or by predating the
v5.1 unlocked-classifier path.
Patch status
A row is Fixed only if its kernel carries the
f43ee0c0730d / fb29e1b41052 fix — a release at or
past 7.2-rc5 / 7.1.6, or an explicit distro backport. Every
maintained 6.x or 5.x line is in-window and, at the time of writing, still
Vulnerable: the fix has not been backported below 7.1.6. The first
group is the upstream kernel; the rest are a focused set of x86-64
distributions, with per-distribution detail in the sections that follow.
First fixed and Fixed since stay — until a row is fixed.
| Distribution | Release | Current kernel | First fixed | Fixed since | Status |
|---|---|---|---|---|---|
| Linux kernel | mainline | 7.2 | 7.2-rc5 | 2026-07-26 | ✅ Fixed — carries f43ee0c0730d |
| Linux kernel | 7.1.x | 7.1.9 | 7.1.6 | 2026-08-03 | ✅ Fixed |
| Linux kernel | 6.18.x | 6.18.45 | — | — | ❌ Vulnerable — LTS, no backport |
| Linux kernel | 6.12.x | 6.12.104 | — | — | ❌ Vulnerable — LTS |
| Linux kernel | 6.6.x | 6.6.152 | — | — | ❌ Vulnerable — LTS |
| Linux kernel | 6.1.x | 6.1.183 | — | — | ❌ Vulnerable — LTS |
| Linux kernel | 5.15.x | 5.15.216 | — | — | ❌ Vulnerable — LTS |
| Linux kernel | 5.10.x | 5.10.265 | — | — | ❌ Vulnerable — LTS |
| Debian | sid (unstable) | 7.1.8-2 | 7.1.6-1 | 2026-08-04 | ✅ Fixed |
| Debian | forky (testing) | 7.1.8-1 | 7.1.6-1 | 2026-08-17 | ✅ Fixed |
| Debian | 13 (trixie) | 6.12.101-1 | — | — | ❌ Vulnerable — no DSA yet |
| Debian | 12 (bookworm) | 6.1.180-1 | — | — | ❌ Vulnerable — no DSA yet |
| Debian | 11 (bullseye, LTS) | 5.10.262-1 | — | — | ❌ Vulnerable — no DSA yet |
| Proxmox VE | 9 (default) | 7.0.14-12-pve | — | — | ❌ Vulnerable |
| Proxmox VE | 8 (default) | 6.8.12-42-pve | — | — | ❌ Vulnerable |
| NixOS | master | 6.18.45 | — | — | ❌ Vulnerable |
| NixOS | release-26.05 | 6.18.45 | — | — | ❌ Vulnerable |
| NixOS | Unstable | 6.18.44 | — | — | ❌ Vulnerable |
| NixOS | Unstable (small) | 6.18.45 | — | — | ❌ Vulnerable |
| NixOS | Unstable (nixpkgs) | 6.18.44 | — | — | ❌ Vulnerable |
| NixOS | 26.05 | 6.18.44 | — | — | ❌ Vulnerable |
| NixOS | 26.05 (small) | 6.18.45 | — | — | ❌ Vulnerable |
| Rocky Linux / RHEL | 10 | 6.12.0-211.47.1.el10_2 | — | — | ❌ Vulnerable — RHEL won’t fix |
| Rocky Linux / RHEL | 9 | 5.14.0-687.39.1.el9_8 | — | — | ❌ Vulnerable — RHEL won’t fix |
| Rocky Linux / RHEL | 8 | 4.18.0-553.156.1.el8_10 | — | — | ❌ Vulnerable — no fix available |
| Amazon Linux | 2023 (default) | 6.1.180-225.360 | — | — | ❌ Vulnerable — no ALAS yet |
| Amazon Linux | 2023 (6.12 opt-in) | 6.12.95-124.187 | — | — | ❌ Vulnerable — no ALAS yet |
| Amazon Linux | 2023 (6.18 opt-in) | 6.18.41-94.142 | — | — | ❌ Vulnerable — no ALAS yet |
Linux kernel
The fix reached Linus in v7.2-rc5 (tagged 2026-07-26) and was
backported to the 7.1.6 stable release (fb29e1b41052,
tagged 2026-08-03). No other stable line carries it. The 6.18, 6.12,
6.6, 6.1, 5.15, and 5.10 long-term lines are all in-window — the race was
introduced at v5.1 and each of these is past that — and none has picked up
the backport, so a host on any current point release of those lines is
vulnerable and stays so until its branch takes the fix, most likely in a
later stable batch. These unpatched long-term lines are the bulk of the
exposure, because nearly every distribution ships from one of them.
Debian
Debian’s status splits on which upstream branch each suite tracks.
sid follows the 7.1 line and has been fixed since the 7.1.6-1
upload (7.1.6 is the branch’s first-fixed release), first seen in the
archive 2026-08-04. testing (forky, the future Debian 14) likewise
tracks the 7.1 line: it jumped straight from the vulnerable 6.12.94-1
to 7.1.8-1 when that kernel migrated on 2026-08-17 — the suite’s first
kernel past the 7.1.6 first fix — so it is fixed too.
Every Debian stable suite is still vulnerable, because each rides
an unpatched line: trixie (Debian 13) rides the 6.12 line, bookworm
(Debian 12) the 6.1 line, and bullseye (Debian 11 LTS) the 5.10 line.
None of those stable lines has the backport, and the Debian security
tracker marks all three suites open with no DSA issued. They will follow
once the 6.12.y / 6.1.y / 5.10.y stable lines gain the fix or Debian
cherry-picks it. The bookworm linux-6.12 and bullseye linux-6.1 opt-in
kernels rebuild the same still-unpatched source lines, so they are
vulnerable too.
The vulnerable path relies on the cls_flower and act_police modules,
which Debian ships and autoloads on demand; no default configuration
blocks them.
Proxmox VE
Proxmox ships its own Ubuntu-derived kernels, so Debian’s status does not
carry over. Both maintained series are vulnerable: PVE 9’s default
proxmox-kernel-7.0 and PVE 8’s default proxmox-kernel-6.8. Neither
carries a net/sched cherry-pick in its packaging, and Ubuntu’s security
tracker marks every 7.0 and 6.8 kernel needed (no fixed build yet), so
the silent-rebase path has not delivered the fix either. A Proxmox kernel
turns fixed only once its Ubuntu base ships the patch or Proxmox
cherry-picks it.
PVE 9 and PVE 8 also still publish older opt-in / preview kernel series
(proxmox-kernel-6.17, -6.14 and the like) that ride equally unpatched
Ubuntu bases; a host booting one of those is vulnerable until it moves to a
fixed kernel.
NixOS
Every tracked ref’s default linuxPackages is linux_6_18 — a 6.18.y
release with no backport, so every tracked ref is vulnerable. Kernel
updates land on nixpkgs master and release-26.05 first, and each
channel republishes them once its Hydra jobset passes; the -small
channels (nixos-unstable-small, nixos-26.05-small) are gated on a
reduced jobset and typically lead their siblings. The nixpkgs-unstable
channel — what a bare nixpkgs flake registry input resolves to — is a
separate channel aimed at non-NixOS Nix users and can hold a different
kernel from nixos-unstable.
nixpkgs does package a fixed linux_7_1 (past the 7.1.6 first fix), but
it is not the default; a host stays vulnerable unless it explicitly
overrides boot.kernelPackages to a fixed series. Overriding to an older
series (linux_6_1 / linux_5_15 / linux_5_10) is likewise vulnerable.
Rocky Linux / RHEL family
RHEL-family kernels are long-lived forks. Red Hat’s CVE record (CSAF/VEX, initial release 2026-08-10, CVSS 7.0) marks RHEL 8, 9, and 10 affected — their kernels carry the unlocked-classifier path — and ships no fix: RHEL 9 and RHEL 10 are flagged “Will not fix”, and RHEL 8 has no fix available, with no RHSA. So every in-support EL stream is vulnerable and, per Red Hat’s stated intent, is expected to stay that way. Red Hat offers no written rationale, but scopes the impact to a system-wide denial of service and rates the flaw Moderate, with no mention of privilege escalation — a lower assessment than the demonstrated local-root exploit, and the basis for declining to backport a fix. Rocky rebuilds RHEL unchanged, so its status tracks Red Hat’s; AlmaLinux (typically the fastest rebuild) has published no erratum either. Oracle Linux and CloudLinux track the RHEL determination.
RHEL 6 and RHEL 7 are not affected — their 2.6.32 / 3.10 kernels
predate the v5.1 unlocked-classifier path, so Red Hat records them
known_not_affected. Both are end-of-life and out of scope here. The niche
kernel-rt real-time kernel shares the base kernel’s exposure.
Because Red Hat does not plan a fix, the practical response on EL hosts is the mitigations below — in particular restricting unprivileged user namespaces, which several EL deployments already do.
Amazon Linux
No ALAS has been issued for this CVE, so every AL2023 kernel stream is
vulnerable: the default kernel (the 6.1 line) and the kernel6.12
and kernel6.18 opt-ins. All three are in-window without the backport;
each turns fixed only when Amazon ships a cherry-pick or the stream
crosses a fixed upstream release. Amazon Linux 2 reached end of support on
2026-06-30 and is not tracked.
Detection
Is the running kernel in the affected window and missing the fix? Every kernel from v5.1 up to the fixed releases is in-window. Compare the running kernel against the Patch status table’s First fixed column for its series — only 7.2-rc5+ / 7.1.6+ (or a distro backport) is fixed:
uname -r
Can an unprivileged user reach CAP_NET_ADMIN? The unprivileged local
path in the public exploit needs unprivileged user namespaces. If both of
these are non-zero, an ordinary user can unshare -Urn into a namespace
where it holds CAP_NET_ADMIN:
sysctl kernel.unprivileged_userns_clone user.max_user_namespaces
Are the classifier and action modules available? The race needs
cls_flower and act_police, which autoload on a matching tc command.
modinfo takes several module names and prints the on-disk path of each
(an error for any that is absent):
modinfo -F filename cls_flower act_police
Is this a multi-tenant or container host? Any context where an
unprivileged user, or a container holding CAP_NET_ADMIN (for example one
run with --cap-add=NET_ADMIN or a privileged pod), can issue tc
commands is directly exposed, regardless of the user-namespace sysctls:
grep -rEl 'CAP_NET_ADMIN|NET_ADMIN|privileged' /etc/containers /etc/kubernetes 2>/dev/null
Public PoC
There is a public working exploit. aramosf/CVE-2026-68138
ships exploit.c, a self-contained program that escalates an unprivileged
user (uid=1000) to root in the initial namespace by driving the qdisc
race and the five-stage chain described above. The author reports it
reproduced against Ubuntu 22.04 GA (5.15.0-187) in a VM, and that the
vulnerable code is present in Ubuntu 22.04 HWE, 24.04, and 26.04 kernels
(with the specific chain tuned for the 5.15 target).
The exploit needs a fairly specific environment — x86-64, at least four
vCPUs, unprivileged user and network namespaces enabled, the
NET_CLS_FLOWER / NET_CLS_ACT / NET_ACT_POLICE config options,
roughly 5 GiB of RAM, and a per-process file-descriptor limit of at least
4096 — but those are ordinary defaults on many desktop and server
kernels. A working exploit being public means this should be treated as
exploited-in-practice, not theoretical: patch or apply the mitigations
below.
Mitigation
The real fix is a patched kernel (a release at or past 7.2-rc5 /
7.1.6, or a distro backport of f43ee0c0730d). Until one is
installed, the exposure can be narrowed — none of these is a fix.
Restrict unprivileged user namespaces
The unprivileged local path depends on user namespaces to obtain
CAP_NET_ADMIN. Where unprivileged user namespaces are not needed,
disabling them closes that path (it does not stop a process or
container that already holds CAP_NET_ADMIN). On Debian/Ubuntu kernels:
sudo sysctl -w kernel.unprivileged_userns_clone=0
Persist it across reboots:
echo 'kernel.unprivileged_userns_clone = 0' | sudo tee /etc/sysctl.d/99-cve-2026-68138.conf
On kernels without that Debian/Ubuntu knob, cap the count instead:
sudo sysctl -w user.max_user_namespaces=0
Block the classifier and action modules
Where tc flower filtering with a police action is not used, blocking the
modules removes the datapath — including for a privileged or container
caller, which the user-namespace knob does not. install … /bin/false is
surer than a plain blacklist, which only suppresses alias autoloading:
printf 'install cls_flower /bin/false\ninstall act_police /bin/false\n' | sudo tee /etc/modprobe.d/cve-2026-68138.conf
That rule only prevents future autoload — it does not remove a module already resident. Where the modules are loaded but idle, unload them so the block takes effect now:
sudo modprobe -r act_police cls_flower
A module that is genuinely in use cannot be unloaded, and on a host
actively running tc flower+police you could not block it without breaking
that service — so there the rule has no effect until the workload stops (or
a reboot with the rule already in place). It is likewise inert if either
module is built into the kernel (=y) rather than loadable; the modinfo
check above prints a .ko path only for a loadable module.
Only do this where flower-based traffic control is genuinely unused; some container networking, QoS, and SDN stacks rely on it and must fall back to the other measures.
Restrict who holds CAP_NET_ADMIN
On multi-tenant and container hosts, review which workloads are granted
CAP_NET_ADMIN: drop it from container capability sets that do not need
it, avoid privileged containers, and keep untrusted workloads out of
namespaces where they can run tc. This shrinks the reachable surface but
leaves a trusted-but-hostile caller in scope.
Risk notes
- Multi-tenant and container hosts are the exposure. The demonstrated
impact is local privilege escalation to root, so any host where an
unprivileged user or a container can reach
CAP_NET_ADMINand runtcis directly in scope — a public exploit exists. - Distributions are broadly unpatched. The fix reached only mainline and the 7.1 stable line; every maintained 6.x / 5.x line, and every tracked distribution kernel, is still vulnerable at the time of writing. Check the First fixed column, not the kernel’s age.
- Red Hat does not plan a fix. RHEL 9 and 10 are marked “Will not fix” and RHEL 8 has no fix available, so EL hosts should rely on the mitigations rather than waiting for an RHSA.
- No “module not present” escape. Unlike some kernel CVEs, the
vulnerable code is core
net/sched(built in withCONFIG_NET_SCHED); onlycls_flower/act_policeare modules, and they autoload on demand. Reachability turns onCAP_NET_ADMINand user namespaces, not on whether a module is already loaded.
Verification log
Every verdict in the table above is backed by a checkable source. This log records the provenance — the git reference, advisory, or repository index that established each fact — so any row can be audited or reproduced. Most readers never need it.
Full verification log
Upstream
- The fix is
f43ee0c0730d(net/sched: serialize qdisc_rtab_list against concurrent get/put), first released in v7.2-rc5 (git describe --contains→v7.2-rc5~27^2~47, tag date 2026-07-26, via~/src/linux/stable/~/src/linux/net). It adds a dedicatedqdisc_rtab_lockspinlock aroundqdisc_rtab_listand the refcount. - The race was introduced by
470502de5bdb(net: sched: unlock rules update API) in v5.1 (describe --contains→v5.1-rc1~178^2~254^2, commit date 2019-02-12) — the unlocked classifier-update path. Kernels whosenet/schedpredates it are not affected. - CVE-2026-68138 assigned by the kernel CNA (confirmed via
vulns.gitorigin/master,cve/published/2026/CVE-2026-68138.{json,dyad,cvss}; record keys onf43ee0c0730d6191629b5ee1ceae27b1ebfdc047). The.dyad’s only vulnerable:fixed pairs are5.1 → 7.1.6and5.1 → 7.2-rc5— there is no 6.x / 5.x stable backport. - Stable backport: the fix is present on
origin/linux-7.1.yasfb29e1b41052(subject grep against~/src/linux/stable), released in 7.1.6 (tag date 2026-08-03). It is absent fromorigin/linux-6.18.y,-6.12.y,-6.6.y,-6.1.y,-5.15.y, and-5.10.y(subject grep returns nothing), confirming those lines are in-window but unpatched. TheLinux kernelrows’ Current kernel cells are read from kernel.org’sfinger_banner.
Scoring
- Kernel CNA (
vulns.git.cvss/.json,origin/master): CVSS 3.1 7.8 HIGH (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H).AV:Lbecause the trigger is localRTM_NEWTFILTERrtnetlink messages;PR:Lbecause the non-GET rtnetlink handler needsCAP_NET_ADMIN, which an unprivileged user obtains namespaced viaunshare -Urn. - Red Hat (CSAF/VEX, initial release 2026-08-10): CVSS 3.1 7.0 HIGH
(
AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H), impact Moderate — the same local vantage, scoringAC:Hfor the race window rather than the CNA’sAC:L. The VEX carries no free-text statement; its description scopes the impact to a system-wide denial of service with no mention of privilege escalation. Base-kernelremediation isno_fix_planned(“Will not fix”) for RHEL 9 and 10 andnone_available(“Affected”) for RHEL 8; across all 276 affected products, 182 are will-not-fix, 51 affected, and 43vulnerable_code_not_present. - NVD / EPSS / KEV: NVD record status Received (its listed CVSS 3.1 mirrors the CNA score rather than an independent NVD assessment); published 2026-08-10, last modified 2026-08-17; no CWE assigned. EPSS ~0.13% (~3rd percentile, via api.first.org); not in CISA KEV.
Distributions
- Debian (security tracker
data/json,linuxsource package,scope: local):- sid resolved fixed; the tracker’s fixed version for unstable is
7.1.6-1(the 7.1 branch’s first-fixed release), first seen in the archive 2026-08-04 per snapshot.debian.org. - forky (testing) resolved fixed (ftp-master madison shows the 7.1
kernel in
testing); the suite migrated straight from the vulnerable6.12.94-1to7.1.8-1on 2026-08-17 (snapshot.debian.org still showed6.12.94-1in testing at 18:00 UTC that day). - trixie open — the 6.12.y line carries no backport.
- bookworm open — 6.1.y unpatched.
- bullseye open — 5.10.y unpatched.
- The stable suites’ Current kernel values are the
<suite>-securityentries under the tracker’srepositories; sid’s and forky’s come from ftp-master madison. - No DSA issued for any suite; urgency “not yet assigned”. The
linux-6.12/linux-6.1opt-in source packages have no separate tracker entry and rebuild the same unpatched lines.
- sid resolved fixed; the tracker’s fixed version for unstable is
- Ubuntu (ubuntu.com/security/CVE-2026-68138.json, used for the
Proxmox base): every supported release (
focal,jammy,noble,resolute) and the HWE stacks are marked needed — no fixed binary package and no USN.bionic/xenial/trustyare not-affected (pre-5.1). The feed’s “upstream: released” entry also cites6.8.y,6.17.y, and7.0.yalongside7.2-rc5; a direct read ofnet/sched/sch_api.con~/src/linux/stable’sorigin/linux-6.8.y,-6.17.y, and-7.0.y(all frozen at their final release, noqdisc_rtab_lock) shows none of the three actually carries the fix, so this is not read as a fix path for the Proxmox rows below. - Proxmox VE (
~/src/proxmox/pve-kernel, pve-no-subscriptionPackages.gz): the default series areproxmox-kernel-7.0(PVE 9) andproxmox-kernel-6.8(PVE 8); their Current kernel builds are read from the pve-no-subscriptionPackages.gz. Noqdisc_rtab/ “serialize qdisc_rtab” patch inpatches/kernel/onmaster,bookworm-6.8, or the preview branches, and Ubuntu marks both 7.0 and 6.8 needed, so neither the named-cherry-pick nor the silent-rebase path has shipped the fix. - NixOS (
~/src/nixos/nixpkgs):packageAliases.linux_default = linux_6_18at every tracked ref, all still on the unpatched 6.18.y line — somaster,release-26.05,nixos-unstable(-small),nixpkgs-unstable, andnixos-26.05(-small)are all vulnerable. Each row’s Current kernel is the6.18versionkernels-org.jsonresolves at that ref (branch refs from the clone, channels via theirgit-revisionpins). Alinux_7_1package exists and is fixed, but is not the default. - Rocky / RHEL family: Red Hat’s CSAF/VEX record
(
security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-68138.json, initial release 2026-08-10) marks RHEL 8/9/10known_affectedwith remediationno_fix_plannedfor RHEL 9/10 (“Will not fix”) andnone_availablefor RHEL 8 — novendor_fix, no RHSA. RHEL 6/7 and OCP4 areknown_not_affected(vulnerable_code_not_present). The Rocky rows’ Current kernel NVRs are read from BaseOS repodata (primary.xml.gz, highestrel). No AlmaLinux erratum (OSV). - Amazon Linux: no ALAS for CVE-2026-68138 in the AL2023
updateinfo.xml.gz. The per-stream Current kernel values (defaultkernel,kernel6.12,kernel6.18) are read fromprimary.xml.gz— all in-window without the backport.
References
| Source | URL |
|---|---|
| Public PoC (A. Ramos) | https://github.com/aramosf/CVE-2026-68138 |
| Kernel fix (v7.2-rc5) | https://git.kernel.org/stable/c/f43ee0c0730d6191629b5ee1ceae27b1ebfdc047 |
| Stable backport (7.1.6) | https://git.kernel.org/stable/c/fb29e1b41052488ee3f2d115d4a870497ebd7f7d |
| Introducing commit (v5.1) | https://git.kernel.org/stable/c/470502de5bdb1ed0def643a4458593a40b8f6b66 |
| CVE-2026-68138 | https://www.cve.org/CVERecord?id=CVE-2026-68138 |
| NVD entry | https://nvd.nist.gov/vuln/detail/CVE-2026-68138 |
| Debian security tracker | https://security-tracker.debian.org/tracker/CVE-2026-68138 |
| Ubuntu CVE tracker | https://ubuntu.com/security/CVE-2026-68138 |
| Red Hat security data | https://access.redhat.com/security/cve/CVE-2026-68138 |
| Amazon Linux ALAS | https://alas.aws.amazon.com/ |
| stable point release banner | https://www.kernel.org/finger_banner |