CVE-2026-90114: net: bridge: Reject descending VLAN tunnel ranges
In the Linux kernel, the following vulnerability has been resolved:
net: bridge: Reject descending VLAN tunnel ranges
A pair of descending VLAN and tunnel IDs can pass the tunnel range span check. The VLAN subtraction produces a negative int, which is converted to unsigned when compared with the u32 tunnel ID subtraction. It can therefore equal the wrapped tunnel ID delta.
The range loop then performs no iterations. Since the batched notification handling added a post-loop error check, this leaves err uninitialized and makes the request's return value unpredictable.
Reject descending VLAN ranges before comparing the spans. Valid ascending and single-entry ranges remain unchanged, while malformed descending ranges consistently return -EINVAL.
This issue was found by a static analysis checker and confirmed by manual source review.
Affected Software
Event History
Frequently Asked Questions
What input triggers the affected code path?
A request that supplies descending VLAN and tunnel ID ranges can pass the range-span check because of signed-to-unsigned conversion. The resulting range loop performs no iterations and may return an unpredictable value due to an uninitialized error variable.
Are valid VLAN tunnel range requests affected?
No. Ascending ranges and single-entry ranges remain unchanged; the fix rejects malformed descending VLAN ranges with -EINVAL.
How can this be mitigated before applying the fix?
Avoid submitting VLAN tunnel range requests with a VLAN range whose start is greater than its end. Such malformed descending ranges should be rejected rather than relied upon for configuration operations.