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

net: microchip: vcap: fix races on the shared Super VCAP block

The VCAP instances on a chip are not independent, yet they are locked
independently. On sparx5 and lan969x the IS0 and IS2 instances are
backed by the same Super VCAP hardware block and share its cache and
command registers: every access drives the shared VCAP_SUPER_CTRL
register and moves data through the shared cache registers.

Accessing one instance therefore races with accessing another. The
per-instance admin->lock cannot prevent this, as each instance takes a
different lock.

The locking issue is mostly disguised by the fact that the core usage of
the vcap api runs under rtnl. However, the full rule dump in debugfs
decodes rules straight from hardware (a READ command followed by a cache
read) and runs outside rtnl, so it races a concurrent tc-flower rule
write to another Super VCAP instance.

Besides corrupting the dump, the read repopulates the shared cache
between the writers cache fill and its write command, so the writer
commits the wrong data and corrupts the hardware entry.

Introduce vcap_lock() and vcap_unlock() helpers and route every rule
lock site in the VCAP API and its debugfs code through them. Replace the
per-instance admin->lock with a single mutex in struct vcap_control that
serializes access to all instances. The helpers reach it through a new
admin->vctrl back-pointer, and the clients initialise and destroy the
control lock instead of a per-instance one.

No path holds more than one instance lock, so collapsing them onto a
single mutex cannot self-deadlock.
Published: 2026-08-15
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Microchip VCAP driver implements per‑instance locks that protect the VCAP data structures in software, but the underlying hardware – the shared Super VCAP block on sparx5 and lan969x chips – is accessed by all instances and shares cache and command registers. Because each instance uses a different lock, concurrent operations on distinct VCAP instances can race. When a rule dump read occurs in debugfs outside the normal rtnl lock, it mixes a read command with a cache read while another thread may be writing a rule via tc‑flower. The shared cache can be overwritten between these steps, leading to the writer committing incorrect data and corrupting the hardware rule table. Faulty data in the rule table causes misconfigured traffic scheduling and packet loss, effectively disrupting network services.

Affected Systems

This flaw is present in Linux kernel builds that include the Microchip VCAP driver for sparx5 and lan969x platforms. Any system that enables the VCAP debugfs interface is also vulnerable, as the rule dump operation runs outside the protection of the standard network lock. No specific kernel version range is given; the fix is merged into the kernel mainline and applies to subsequent releases.

Risk and Exploitability

The race condition is triggered by concurrent administrative operations that exercise the VCAP API, such as adding or deleting traffic control rules for different VCAP instances. The likely attack vector is local privileged execution: an attacker with kernel‑mode access can load a module that uses the VCAP driver or run elevated network configuration commands to create simultaneous rule changes and reproduce the corruption. The EPSS score of < 1% indicates an extremely low probability of exploitation, and the flaw is not catalogued in the CISA KEV list. Nonetheless, the CVSS score of 7.8 reflects a high severity because the vulnerability can corrupt hardware configuration and lead to denial of network service; therefore prompt remediation is warranted.

Generated by OpenCVE AI on August 22, 2026 at 08:06 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the kernel to a release that includes the vcap_lock()/vcap_unlock() fix
  • Disable the debugfs VCAP interface to eliminate the read/write race
  • Limit the set of users who can invoke privileged VCAP operations to reduce the attack surface

Generated by OpenCVE AI on August 22, 2026 at 08:06 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 06:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Thu, 20 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-821
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 17 Aug 2026 20:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Mon, 17 Aug 2026 17:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-754

Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Sat, 15 Aug 2026 19:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-754

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net: microchip: vcap: fix races on the shared Super VCAP block The VCAP instances on a chip are not independent, yet they are locked independently. On sparx5 and lan969x the IS0 and IS2 instances are backed by the same Super VCAP hardware block and share its cache and command registers: every access drives the shared VCAP_SUPER_CTRL register and moves data through the shared cache registers. Accessing one instance therefore races with accessing another. The per-instance admin->lock cannot prevent this, as each instance takes a different lock. The locking issue is mostly disguised by the fact that the core usage of the vcap api runs under rtnl. However, the full rule dump in debugfs decodes rules straight from hardware (a READ command followed by a cache read) and runs outside rtnl, so it races a concurrent tc-flower rule write to another Super VCAP instance. Besides corrupting the dump, the read repopulates the shared cache between the writers cache fill and its write command, so the writer commits the wrong data and corrupts the hardware entry. Introduce vcap_lock() and vcap_unlock() helpers and route every rule lock site in the VCAP API and its debugfs code through them. Replace the per-instance admin->lock with a single mutex in struct vcap_control that serializes access to all instances. The helpers reach it through a new admin->vctrl back-pointer, and the clients initialise and destroy the control lock instead of a per-instance one. No path holds more than one instance lock, so collapsing them onto a single mutex cannot self-deadlock.
Title net: microchip: vcap: fix races on the shared Super VCAP block
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-17T05:42:59.028Z

Reserved: 2026-08-09T03:40:39.920Z

Link: CVE-2026-72340

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:22:07.280

Modified: 2026-08-17T06:18:37.763

Link: CVE-2026-72340

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72340 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T08:15:03Z

Weaknesses
  • CWE-821

    Incorrect Synchronization