0.0
NA
CVE-2026-74615
vxlan: do not arm the ageing timer on a device that is down
Description

In the Linux kernel, the following vulnerability has been resolved: vxlan: do not arm the ageing timer on a device that is down 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]>

INFO

Published Date :

Aug. 22, 2026, 4:16 p.m.

Last Modified :

Aug. 22, 2026, 4:16 p.m.

Remotely Exploit :

No

Source :

416baaa9-dc9f-4396-8d5f-8c081fb06d67
Affected Products

The following products are affected by CVE-2026-74615 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

No affected product recoded yet

Solution
Apply the kernel patch to prevent timer arming on down devices and avoid memory corruption.
  • Update the Linux kernel to the patched version.
  • Ensure vxlan module is configured correctly.
  • Test timer functionality after patch.
CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2026-74615 is associated with the following CWEs:

Common Attack Pattern Enumeration and Classification (CAPEC)

Common Attack Pattern Enumeration and Classification (CAPEC) stores attack patterns, which are descriptions of the common attributes and approaches employed by adversaries to exploit the CVE-2026-74615 weaknesses.

We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).

Results are limited to the first 15 repositories due to potential performance issues.

The following list is the news that have been mention CVE-2026-74615 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2026-74615 vulnerability over time.

Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.

  • New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    Aug. 22, 2026

    Action Type Old Value New Value
    Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '40051c4dcad5b374156ad9cceae8d15c0ef1cb95', 'lessThan': 'be44d79d14d7f9ae7c8ffb7272142005341b5123', 'versionType': 'git'}, {'status': 'affected', 'version': '40051c4dcad5b374156ad9cceae8d15c0ef1cb95', 'lessThan': '26c179d47403d2f919ee914cc02c31d896b59fee', 'versionType': 'git'}, {'status': 'affected', 'version': '40051c4dcad5b374156ad9cceae8d15c0ef1cb95', 'lessThan': '9dc561f0522c35bdd66e0646a748814a138ec4ca', 'versionType': 'git'}, {'status': 'affected', 'version': '40051c4dcad5b374156ad9cceae8d15c0ef1cb95', 'lessThan': '619dd29045e439d0b0f8c6d4fec1af447a050680', 'versionType': 'git'}, {'status': 'affected', 'version': '40051c4dcad5b374156ad9cceae8d15c0ef1cb95', 'lessThan': '6b095e99b9e67ea31f0c4b00260e010898253519', 'versionType': 'git'}, {'status': 'affected', 'version': '40051c4dcad5b374156ad9cceae8d15c0ef1cb95', 'lessThan': '46bb297ad77680e009244f067f27d51cf5b8c7cf', 'versionType': 'git'}, {'status': 'affected', 'version': '40051c4dcad5b374156ad9cceae8d15c0ef1cb95', 'lessThan': '6b4119af544996a545cf84b16f1dbce829ba0de8', 'versionType': 'git'}, {'status': 'affected', 'version': '40051c4dcad5b374156ad9cceae8d15c0ef1cb95', 'lessThan': 'b37971686ec59fb027fa4910ba16805e68fddb97', 'versionType': 'git'}], 'programFiles': ['drivers/net/vxlan/vxlan_core.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5.0'}, {'status': 'unaffected', 'version': '0', 'lessThan': '5.0', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.265', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.216', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.183', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.152', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.104', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.45', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.9', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['drivers/net/vxlan/vxlan_core.c'], 'defaultStatus': 'affected'}]
    Added Description In the Linux kernel, the following vulnerability has been resolved: vxlan: do not arm the ageing timer on a device that is down 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]>
    Added Reference https://git.kernel.org/stable/c/26c179d47403d2f919ee914cc02c31d896b59fee
    Added Reference https://git.kernel.org/stable/c/46bb297ad77680e009244f067f27d51cf5b8c7cf
    Added Reference https://git.kernel.org/stable/c/619dd29045e439d0b0f8c6d4fec1af447a050680
    Added Reference https://git.kernel.org/stable/c/6b095e99b9e67ea31f0c4b00260e010898253519
    Added Reference https://git.kernel.org/stable/c/6b4119af544996a545cf84b16f1dbce829ba0de8
    Added Reference https://git.kernel.org/stable/c/9dc561f0522c35bdd66e0646a748814a138ec4ca
    Added Reference https://git.kernel.org/stable/c/b37971686ec59fb027fa4910ba16805e68fddb97
    Added Reference https://git.kernel.org/stable/c/be44d79d14d7f9ae7c8ffb7272142005341b5123
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.