public inbox for [email protected]
 help / color / mirror / Atom feed
This is experimental automated Linux kernel CVE triage research. Results are heuristic and may be incorrect. This site is not an official vendor advisory or severity source.
* [CVE-2026-74615][IMPORTANT] vxlan: do not arm the ageing timer on a device that is down
@ 2026-08-22 20:47 AL-KERNEL
  0 siblings, 0 replies; only message in thread
From: AL-KERNEL @ 2026-08-22 20:47 UTC (permalink / raw)
  To: kernel-cve

CVE: CVE-2026-74615
Priority: IMPORTANT
AL-KERNEL base severity: IMPORTANT
KPANIC flag: YES
Patch: vxlan: do not arm the ageing timer on a device that is down
Commit: be44d79d14d7f9ae7c8ffb7272142005341b5123
Upstream patch: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=be44d79d14d7f9ae7c8ffb7272142005341b5123
Original CVE announcement: https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-74615
Analysis date: Sat, 22 Aug 2026 16:47:22 -0400
ActionableScore: 8
ActionableScore lower bound: 7
Actionable bucket: Strong Important candidate / Actionable Moderate at minimum
Manual review required: YES

Summary:
A local unprivileged user may trigger a VXLAN timer use-after-free through netns-scoped rtnetlink operations on a down device, causing a kernel crash and presenting a plausible local privilege escalation concern due to freed timer-object reuse.

======================================================================
ABOUT THIS REPORT
======================================================================

The original Linux kernel CVE announcement for CVE-2026-74615 is available here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-74615

The original announcement does not normally provide a security severity
estimate, CVSS assessment, or enough information to determine whether the
reported kernel bug represents a practically relevant security issue.

This report was generated by AL-KERNEL, an AI-assisted Linux kernel
vulnerability analysis system developed by Alexander Larkin. It combines
an autonomous classifier with LLM-assisted technical analysis and a
separate ActionableScore mechanism.

The purpose of this report is to prioritize Linux kernel CVEs before
manual review, identify cases that require prompt investigation, and
support automatic closure of issues that are unlikely to have meaningful
security impact.

Published priority for this report: IMPORTANT
Manual review required: YES

A detailed explanation of the methodology and priority rules is included
at the end of this message.

======================================================================
AL-KERNEL CLASSIFICATION RESULT
======================================================================

CVE-2026-74615	IMPORTANT	CHECK WITH IMPACT FROM ORIG NN MODERATE	Maybe valid. Check manually. Hints by AL-KERNEL: The best (paranoid) CVSS is 'AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H';*CWE-416;CWE-362;*CWE-664;Other CVSS 'AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H';BEST CVSS score: '7';DESCR 'A use after free can occur in the VXLAN driver because vxlan_changelink can arm vxlan age_timer on a device that is down and has never passed through vxlan_stop. When such a device is deleted, free_netdev can release the vxlan_dev allocation while the timer remains queued on a timer base. Later timer execution can access and write through freed timer list pointers, producing a slab use after free in __run_timers and at least a local kernel crash. For the CVSS the PR:L is used because the required rtnetlink operations are netns scoped and can be reachable by an unprivileged local user in a new user and network namespace when unprivileged namespaces are enabled. The issue is not directly network reachable and is triggered by local control plane operations on VXLAN devices. Impact is at least local denial of service via kernel crash. In worst case it may allow confidentiality or integrity impact due to kernel use after free memory corruption and should be reviewed manually.';YES REQUIRES MANUAL CHECK; ,and ActionableScore result is Strong Important candidate / Actionable Moderate at minimum (with actual score 8)	YES	DANGER UAF NETWORK HARDWARE TEST KPANIC  KPANIC INCREASED_TO_HIGH_BASED_ON_ACTIONABLESCOREHIGHEREQTHAN6	NO	NO	checked

======================================================================
ACTIONABLESCORE ANALYSIS
======================================================================

ActionableScore=8
ActionableScoreLower=7

## 1. ActionableScore

* Conservative score: **7**
* Paranoid score: **8**
* Final recommended bucket: **Strong Important candidate / Actionable Moderate at minimum**::

## 2. Signal breakdown

Conservative scoring:

* **Local unprivileged trigger: +1**
  The commit explicitly states that the involved rtnetlink operations are netns scoped and can be performed by an unprivileged user in a new user and network namespace.

* **Memory corruption, strong corruption primitive: +2**
  This is a concrete slab use after free. `free_netdev()` frees `struct vxlan_dev` while `vxlan->age_timer` remains queued, and `__run_timers()` later writes through freed timer list pointers.

* **Real lifetime corruption: +1**
  The bug is a timer lifetime mismatch: an async timer survives the lifetime of the object that embeds it.

* **Reliable kernel crash / strong DoS: +1**
  The KASAN trace shows a reproducible slab-use-after-free in the timer path, with realistic kernel crash potential.

* **Weak to moderate LPE concern: +1**
  The primitive is a kernel UAF with write access to freed timer metadata and possible stale timer callback relevance, but the patch does not demonstrate controlled reclaim, arbitrary write, or reliable object replacement.

* **Broad/common subsystem exposure: +1**
  VXLAN and rtnetlink are common Linux networking control-plane paths. This is not a remote packet path, but it is reachable through standard local kernel networking APIs.

Paranoid delta:

* **Privilege escalation plausibility upgraded from +1 to +2**
  In the paranoid interpretation, a timer-based UAF where the timer object lives inside freed `vxlan_dev` memory is treated as a stronger LPE candidate because reclaimed timer memory may affect timer metadata or callback behavior. This is technically defensible but not demonstrated by the patch.

No subtraction applied for hard race because the described sequence is not a narrow timing-only race. The object is freed while the timer remains queued, and the timer later runs naturally.

## 3. Reachability analysis

The bug is triggered through local VXLAN rtnetlink control-plane operations: create a VXLAN device, change the ageing interval while the device is down, and delete the device before the queued timer is synchronously cancelled. The affected path is not directly network reachable through packet traffic.

In the initial network namespace this would normally require `CAP_NET_ADMIN`. However, the commit explicitly says the relevant rtnetlink operations are netns scoped, so an unprivileged user can perform them inside a newly created user and network namespace when unprivileged user namespaces are enabled. On systems where unprivileged user namespaces are disabled, the practical score should be reduced because triggering then requires administrative network privileges.

Call-site confidence: **high**. The commit message includes the allocation path, free path, timer execution path, and the exact one-line fix preventing `mod_timer()` on a down device.

## 4. Severity interpretation

This behaves more like an **Important-class candidate** than an ordinary Moderate because it is not just a warning or NULL dereference. It is a real kernel UAF involving an asynchronous timer embedded in a freed network device object, with a documented write into freed memory from the timer core.

Realistically demonstrated impact is local kernel crash / DoS. Theoretical impact includes local privilege escalation because timer UAF bugs can sometimes be exploitable through heap reclaim or stale callback behavior. The patch does not prove such a chain, so the conservative score avoids assuming arbitrary code execution, but the bug should not be auto-closed.

## 5. One-sentence report phrase

A local unprivileged user may trigger a VXLAN timer use-after-free through netns-scoped rtnetlink operations on a down device, causing a kernel crash and presenting a plausible local privilege escalation concern due to freed timer-object reuse.

## 6. Manual review recommendation

**MANUAL CHECK REQUIRED**

This is a concrete kernel UAF with write-after-free behavior in the timer subsystem and an explicitly described unprivileged namespace trigger. Even though LPE is not demonstrated, the lifetime primitive is strong enough to require manual review.

======================================================================
UPSTREAM PATCH SUMMARY
======================================================================

Patch: vxlan: do not arm the ageing timer on a device that is down
Commit: be44d79d14d7f9ae7c8ffb7272142005341b5123
Upstream URL: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=be44d79d14d7f9ae7c8ffb7272142005341b5123

Commit description:

vxlan_changelink() arms vxlan->age_timer whenever the requested ageing
interval differs from the configured one:

	if (conf.age_interval != vxlan->cfg.age_interval)
		mod_timer(&vxlan->age_timer, jiffies);

There is no netif_running() test, so the timer is armed even on a device
that was never brought up.  The only synchronous cancel in the driver is
the timer_delete_sync() in vxlan_stop(), which is .ndo_stop.
netif_close_many() drops devices without IFF_UP before
__dev_close_many() runs, so that cancel is skipped for such a device.

vxlan_setup() sets dev->needs_free_netdev = true and age_timer is a
member of struct vxlan_dev, so free_netdev() releases the allocation the
timer lives in while it is still queued on a timer_base.
expire_timers() unlinks the entry before it loads timer->function, so
the timer core writes through the freed object's list pointers:

  BUG: KASAN: slab-use-after-free in __run_timers+0x208/0x654
  Write of size 8 at addr ffff00001adace68 by task true/192
   __asan_store8+0x84/0xac
   __run_timers+0x208/0x654
   run_timer_softirq+0x154/0x18c
  Allocated by task 189:
   alloc_netdev_mqs+0x64/0x720
   rtnl_create_link+0x4ac/0x520
   rtnl_newlink+0x758/0xd00
  Freed by task 191:
   netdev_release+0x40/0x58
   netdev_run_todo+0x4a4/0x8c0
   rtnl_dellink+0x200/0x4e8

The rtnl operations involved are netns-scoped, so an unprivileged user
can perform them in a new user and network namespace.

Arming the timer on a down device never had an effect: vxlan_cleanup()
returns early on !netif_running(), and vxlan_open() arms the timer for
any non-zero interval once the device is brought up.  Add the missing
test.

Discovered by XBOW, triaged by Baul Lee <[email protected]>

Fixes: 40051c4 ("vxlan: Allow changing ageing time")
Cc: [email protected]
Signed-off-by: Baul Lee <[email protected]>
Reviewed-by: Ido Schimmel <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Paolo Abeni <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

Changed files:
  drivers/net/vxlan/vxlan_core.c

Diff excerpt:

Not included in this email. See the upstream URL for the full patch.

Full patch:
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=be44d79d14d7f9ae7c8ffb7272142005341b5123

======================================================================
DETAILED REPORT METHODOLOGY
======================================================================

The original Linux kernel CVE announcement for CVE-2026-74615 can be found here:
https://lore.kernel.org/linux-cve-announce/?q=CVE-2026-74615

The original CVE announcement normally does not include a security-level
estimate. In particular, it may not contain a CVSS assessment, an impact
level, or enough information to determine whether the reported bug is a
practically relevant security issue. One purpose of this parallel CVE list
is to provide that missing technical and prioritization information.

The original goal of the AL-KERNEL project was to prioritize Linux kernel
CVE analysis automatically before manual review. The system can also help
identify non-security issues that may be suitable for automatic closure.

This report was generated by AL-KERNEL, an AI-assisted Linux kernel
vulnerability analysis system developed by Alexander Larkin.

The first analysis stage combines an autonomous classifier with additional
LLM-based analysis. The autonomous classifier runs locally on a CPU and is
based on a backpropagation neural network. Together, these mechanisms
produce a technical vulnerability description, identify likely weakness
types, estimate CVSS severity, and provide input for ActionableScore.

Two CVSS estimates are retained because incomplete kernel vulnerability
information often permits more than one defensible interpretation:

  Conservative CVSS vector: AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H
  The Best / paranoid CVSS vector: AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
  The Best / paranoid CVSS score: 7

The conservative vector represents a lower-impact interpretation.
The Best/paranoid vector intentionally represents a plausible upper-bound
interpretation and should not automatically be treated as demonstrated
real-world impact.

CVSS may also need to be adjusted for a particular Linux deployment,
because actual reachability, privileges, enabled kernel configuration,
hardware, namespaces, exposed device nodes, and other environmental
conditions can differ significantly between systems.

A separate ActionableScore mechanism evaluates practical remediation
urgency. Its analysis may include reachability, attack prerequisites,
subsystem exposure, memory-corruption characteristics, denial-of-service
reliability, and possible confidentiality, integrity, or
privilege-escalation impact.

  Conservative ActionableScore: 7
  Paranoid ActionableScore: 8

The final base severity is taken directly from the second tab-separated
field of the AL-KERNEL classification result. ActionableScore does not
replace or independently override that final AL-KERNEL decision, and
if ActionableScore adjusted impact level of ALKERNEL, then you would see
self-readable flags above like INCREASED_TO_HIGH_BASED_ON_ACTIONABLESCOREHIGHEREQTHAN7.

For an AL-KERNEL result of MODERATE, this report uses the following
additional presentation split:

  ActionableScore below 5   -> MODERATE REGULAR
  ActionableScore 5 or more -> MODERATE 7.0

The distinction between MODERATE REGULAR and MODERATE 7.0 makes it
possible to identify Moderate issues that should receive manual analysis
and fixes before lower-priority MODERATE REGULAR issues. In many cases,
MODERATE REGULAR fixes may wait for a later rebase or routine update.

There is one override in which MODERATE REGULAR becomes MODERATE 7.0
even when the ActionableScore is below 5. When the AL-KERNEL result
contains the KPANIC flag, a MODERATE result is always presented as
MODERATE 7.0. The KPANIC flag selected with few regexps without
usage of AI at all, so it helps to detect cases when Kernel Crash happens
and similar (to filter False-Negative results from the LLM usage).

KPANIC indicates that a reliable kernel crash, kernel panic, or similarly
serious kernel availability impact was identified by the classification
workflow.

AL-KERNEL base severity for this report: IMPORTANT
KPANIC detected for this report: YES
Published priority for this report (same as in Subject): IMPORTANT

These results are intended to support engineering triage. They are
machine-generated estimates, and cases marked for manual review should
be validated by a human security engineer before final disposition.
For more info read docs linked from here: https://kernelcve.org/
(and you can submit you own patch there to generate such a report
for non-existant CVE-id yet).

Note that in many cases this AI tool selects higher severity, than
real is (means you can expect Importants instead of Moderate 7.0 or
Moderates 7.0 instead of regular Moderates). If you see such cases,
please use reply email interface to add additional manual analyses
info to this particular CVE.
And please, please, let me know when you see Lows instead of Importants
or Important instead of Low (because particular for such cases I
need to tune this AI tool to make it better for this one and next similar).
My contact email for such notifications is [email protected] (and both
send reply to CVE record itself too and see "reply" button below for howto reply).

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-22 20:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-22 20:47 [CVE-2026-74615][IMPORTANT] vxlan: do not arm the ageing timer on a device that is down AL-KERNEL

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox