CVE-2026-53353: Linux Kernel HSR Warning Denial—CVSS 5.5 Medium
CVE-2026-53353 is a medium-severity Linux kernel vulnerability in the HSR (High-availability Seamless Redundancy) networking subsystem. The issue stems from an erroneous assumption in the `hsr_addr_is_self()` function that triggers a kernel warning when the HSR interface is being torn down. The underlying problem is a race condition: the function expects the `self_node` structure to always exist while a device is visible to userspace, but device cleanup operations can clear this structure before the device is fully unregistered, creating a window where the warning fires. The fix removes the incorrect warning check rather than fundamentally altering HSR's operation. Only systems with HSR interfaces configured are affected.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- —
- Affected products
- 7 configuration(s)
- Published / Modified
- 2026-07-01 / 2026-07-22
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: hsr: Remove WARN_ONCE() in hsr_addr_is_self(). syzbot reported the warning [0] in hsr_addr_is_self(), whose assumption is simply wrong. hsr->self_node is cleared in hsr_del_self_node(), which is called from hsr_dellink(). Since dev->rtnl_link_ops->dellink() is called before unregister_netdevice_many(), there is a window when user can find the device but without hsr->self_node. Let's remove WARN_ONCE() in hsr_addr_is_self(). [0]: HSR: No self node WARNING: net/hsr/hsr_framereg.c:39 at hsr_addr_is_self+0x211/0x3f0 net/hsr/hsr_framereg.c:39, CPU#0: syz.4.16848/17220 Modules linked in: CPU: 0 UID: 0 PID: 17220 Comm: syz.4.16848 Tainted: G L syzkaller #0 PREEMPT_{RT,(full)} Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/18/2026 RIP: 0010:hsr_addr_is_self+0x211/0x3f0 net/hsr/hsr_framereg.c:39 Code: 33 2f 41 0f b7 dd 89 ee 09 de 31 ff e8 c8 b4 c6 f6 09 dd 74 54 e8 0f b0 c6 f6 31 ed eb 53 e8 06 b0 c6 f6 48 8d 3d 2f 50 9c 04 <67> 48 0f b9 3a 31 ed eb 42 e8 c1 13 1f 00 89 c5 31 ff 89 c6 e8 96 RSP: 0018:ffffc900041c70e0 EFLAGS: 00010283 RAX: ffffffff8afdc6ca RBX: ffffffff8afdc4e6 RCX: 0000000000080000 RDX: ffffc90010493000 RSI: 0000000000000948 RDI: ffffffff8f9a1700 RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000000 R10: ffffc900041c71e8 R11: fffff52000838e3f R12: dffffc0000000000 R13: ffff888041f9e3c0 R14: ffff888086ee3802 R15: 0000000000000000 FS: 00007f6fe985d6c0(0000) GS:ffff888126176000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f80bd437dac CR3: 0000000025096000 CR4: 00000000003526f0 DR0: ffffffffffffffff DR1: 00000000000001f8 DR2: 0000000000000002 DR3: ffffffffefffff15 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Call Trace: <TASK> check_local_dest net/hsr/hsr_forward.c:592 [inline] fill_frame_info net/hsr/hsr_forward.c:728 [inline] hsr_forward_skb+0xa11/0x2a80 net/hsr/hsr_forward.c:739 hsr_dev_xmit+0x253/0x370 net/hsr/hsr_device.c:236 __netdev_start_xmit include/linux/netdevice.h:5368 [inline] netdev_start_xmit include/linux/netdevice.h:5377 [inline] xmit_one net/core/dev.c:3888 [inline] dev_hard_start_xmit+0x2df/0x860 net/core/dev.c:3904 __dev_queue_xmit+0x1428/0x3900 net/core/dev.c:4870 neigh_output include/net/neighbour.h:556 [inline] ip_finish_output2+0xcec/0x10b0 net/ipv4/ip_output.c:237 ip_send_skb net/ipv4/ip_output.c:1510 [inline] ip_push_pending_frames+0x8b/0x110 net/ipv4/ip_output.c:1530 raw_sendmsg+0x1547/0x1a50 net/ipv4/raw.c:659 sock_sendmsg_nosec net/socket.c:787 [inline] __sock_sendmsg net/socket.c:802 [inline] ____sys_sendmsg+0x7da/0x9c0 net/socket.c:2698 ___sys_sendmsg+0x2a5/0x360 net/socket.c:2752 __sys_sendmsg net/socket.c:2784 [inline] __do_sys_sendmsg net/socket.c:2789 [inline] __se_sys_sendmsg net/socket.c:2787 [inline] __x64_sys_sendmsg+0x1c3/0x2a0 net/socket.c:2787 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x15f/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f6feb62ce59 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f6fe985d028 EFLAGS: 00000246 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 00007f6feb8a6090 RCX: 00007f6feb62ce59 RDX: 0000000000000000 RSI: 0000200000000000 RDI: 0000000000000004 RBP: 00007f6feb6c2d6f R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f6feb8a6128 R14: 00007f6feb8a6090 R15: 00007ffcf01cc488 </TASK>
5 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability exists in `net/hsr/hsr_framereg.c` within the HSR frame registration logic. When an HSR interface is deleted via `hsr_dellink()`, the `hsr_del_self_node()` function clears the `hsr->self_node` pointer. However, `dev->rtnl_link_ops->dellink()` is invoked before `unregister_netdevice_many()`, creating a race window where the device remains discoverable but lacks its self_node reference. If packet forwarding logic in `hsr_forward_skb()` calls `hsr_addr_is_self()` during this window, a kernel WARN_ONCE() macro fires with the message 'HSR: No self node.' The warning itself does not prevent packet processing, but it incorrectly signals a logic error. The fix removes the WARN_ONCE() call because the condition it guards—missing self_node during device teardown—is a normal, expected state, not an error condition. No functional change to HSR forwarding or address validation occurs.
Business impact
This vulnerability causes kernel warning spam during routine HSR interface teardown, degrading system observability and potentially triggering automated alert systems. While not a functional failure, persistent warnings in production logs can obscure genuine errors and create false-positive security alerts. Systems relying on HSR for redundant networking (industrial control, telecommunications, automotive systems) may experience disrupted monitoring and false incident escalations. The impact is primarily operational and diagnostic rather than a direct security compromise. Administrators managing HSR deployments must suppress or tolerate spurious warnings until patching, consuming log analysis resources.
Affected systems
Only Linux systems with HSR (High-availability Seamless Redundancy) interfaces configured are affected. HSR is a specialized redundancy protocol used in industrial and critical infrastructure networks, not enabled by default in standard Linux distributions or typical enterprise deployments. Affected configurations include embedded systems, automotive networking stacks, process control networks, and telecommunications equipment implementing HSR for fault tolerance. Versions prior to the fix commit are vulnerable; specific version numbers depend on the kernel branch and distribution's backport status. Users without explicit HSR interface configuration are unaffected.
Exploitability
This vulnerability is not exploitable in the traditional sense. It does not enable privilege escalation, information disclosure, or denial of service through network packets or user-triggered events. The condition is triggered only during the legitimate, expected teardown of an HSR interface—a privileged administrative operation. An unprivileged attacker cannot independently trigger the warning. However, local privileged users (or processes with CAP_NET_ADMIN capability) can repeatedly create and delete HSR interfaces to generate warnings. The issue is a kernel logging artifact exposed by syzbot's fuzzing, not a security vulnerability enabling unauthorized actions or system compromise. It is best classified as a code quality issue with minimal real-world security risk.
Remediation
Apply the upstream kernel patch that removes the WARN_ONCE() call from `hsr_addr_is_self()`. The fix is non-invasive—a single-line deletion—and carries no risk of functional regression since the warning itself served no operational purpose beyond signaling an erroneous assumption. Backports for stable kernel series (5.15, 6.1, 6.6, 6.9, and later) are expected. Distributions shipping HSR modules (embedded Linux, automotive platforms) should incorporate this fix in their next kernel updates. No workaround exists beyond disabling HSR entirely or tolerating warnings in kernel logs.
Patch guidance
Identify your Linux kernel version and distribution. If your system runs an HSR interface, check your vendor's security advisory for patch availability. Distributions including HSR support should provide a kernel update containing this fix within their normal security release cadence. For custom or embedded builds, apply the upstream commit directly to the HSR frame registration module. Testing should verify that HSR interfaces can be created and destroyed without warnings appearing in `dmesg` or syslog. No configuration changes or runtime parameters require adjustment; the patch is transparent to HSR operation.
Detection guidance
Search kernel logs for the pattern 'HSR: No self node' warnings emitted from `hsr_framereg.c:39`. These warnings are most visible when HSR interfaces are frequently created or destroyed (e.g., during interface failover, testing, or automated network reconfiguration). On production systems with long-running HSR interfaces that are rarely torn down, warnings may not appear. Monitor for spikes in kernel warnings correlated with HSR interface lifecycle events. Automated log analysis should suppress or ignore this specific warning once patched, to prevent false-positive incident tickets.
Why prioritize this
This is a low-urgency patch for most deployments due to its limited exploitability and scope. Prioritize it for systems actively using HSR (industrial control networks, telecom equipment, redundant networking stacks) where HSR interfaces are frequently provisioned or deprovisioned. Standard enterprise and cloud infrastructure without HSR configuration can defer patching. The CVSS 5.5 MEDIUM score reflects the local, privileged-user requirement and the lack of real security impact; availability impact is limited to kernel logging artifacts rather than operational disruption. Schedule patching in routine maintenance windows rather than emergency cycles.
Risk score, explained
CVSS 3.1 score of 5.5 MEDIUM reflects: (1) Local-only attack vector (AV:L)—only privileged local users can trigger the condition; (2) Low attack complexity (AC:L)—trivial to reproduce via interface teardown; (3) Privilege required (PR:L)—CAP_NET_ADMIN or root needed; (4) No user interaction (UI:N); (5) No confidentiality or integrity impact (C:N, I:N); (6) High availability impact (A:H)—kernel warnings degrade observability and could trigger automated alerting. The score reflects operational/diagnostic impact rather than direct system compromise. In practice, real-world risk is lower because HSR is niche, and warnings do not prevent HSR function.
Frequently asked questions
Does this vulnerability allow remote attackers to compromise HSR networks?
No. The vulnerability is local-only and requires privileged access (CAP_NET_ADMIN or root) to trigger. Remote attackers cannot exploit this. It is purely a kernel logging issue exposed during routine interface teardown.
Will applying the patch break my HSR setup?
No. The patch removes an incorrect warning check; HSR forwarding, address validation, and redundancy mechanisms are unaffected. Patching is safe and transparent to running HSR deployments.
Do I need to patch if I don't use HSR?
No. Standard Linux systems without explicit HSR interface configuration are not affected. HSR is a specialized redundancy protocol used in industrial and telecom settings, not enabled by default.
What should I do if I see 'HSR: No self node' warnings in my logs?
These warnings are harmless but indicate you are running an unpatched kernel with HSR interfaces undergoing teardown (deletion). Apply the patch at your next maintenance window. Until then, you can safely suppress these warnings in your log analysis if they are creating alert noise.
This analysis is based on the CVE description and upstream kernel documentation available as of the publication date. CVSS scores and severity ratings are as reported by the National Vulnerability Database. Patch version numbers, availability timelines, and backport status should be verified directly with your Linux distribution's security advisory and upstream kernel project. The information provided is for informational purposes and should not be treated as a substitute for vendor security guidance or professional security assessment. Systems administrators should validate patch applicability and test thoroughly in non-production environments before deployment. Source: NVD (public-domain), retrieved 2026-08-10. Analysis generated by SEC.co (claude-haiku-4-5).
Affected vendors
Related vulnerabilities
- CVE-2025-36372MEDIUMIBM Db2 Information Disclosure in Monitoring Tables
- CVE-2025-71313MEDIUMLinux Kernel PCI Endpoint NULL Pointer Dereference
- CVE-2025-71314MEDIUMLinux Panthor GPU Driver Denial of Service via Cache Flush Timeout
- CVE-2025-71315MEDIUMLinux Kernel vkms DRM Vblank Timer Denial of Service
- CVE-2026-0268MEDIUMPrisma Access Agent Linux VPN Bypass Vulnerability
- CVE-2026-10004MEDIUMChrome UI Spoofing Vulnerability – Password Dialog Hijacking
- CVE-2026-10018MEDIUMInteger Overflow in Chrome ANGLE GPU Graphics Layer
- CVE-2026-10912MEDIUMChrome Extension Same-Origin Policy Bypass (CVSS 6.5)