bridge: mrp: reject zero test interval to avoid OOM panic
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: bridge: mrp: reject zero test interval to avoid OOM panic br_mrp_start_test() and br_mrp_start_in_test() accept the user-supplied interval value from netlink without validation. When interval is 0, usecs_to_jiffies(0) yields 0, causing the delayed work (br_mrp_test_work_expired / br_mrp_in_test_work_expired) to reschedule itself with zero delay. This creates a tight loop on system_percpu_wq that allocates and transmits MRP test frames at maximum rate, exhausting all system memory and causing a kernel panic via OOM deadlock. The same zero-interval issue applies to br_mrp_start_in_test_parse() for interconnect test frames. Use NLA_POLICY_MIN(NLA_U32, 1) in the nla_policy tables for both IFLA_BRIDGE_MRP_START_TEST_INTERVAL and IFLA_BRIDGE_MRP_START_IN_TEST_INTERVAL, so zero is rejected at the netlink attribute parsing layer before the value ever reaches the workqueue scheduling code. This is consistent with how other bridge subsystems (br_fdb, br_mst) enforce range constraints on netlink attributes.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
Version range not reported
- Linux Linux
5.8
References 8
git.kernel.org
- stable/c/610073ffb77ffd2b5eca182d2ac264de4834a175
- stable/c/ec8850be9b2b3beac1c7967d95f169dd2785979d
- stable/c/1ec86b4b9e28170a2565cf36f0e6e2b96b55134d
- stable/c/2120bd8546cd6a63c558d135773aa8f41c8259fc
- stable/c/630a15a31c2034b5b697f4aabc769b9d80d82446
- stable/c/e8ec80430bfa520e7352155d6ac632e527cba7aa
- stable/c/c9bc352f716d1bebfe43354bce539ec2d0223b30
- stable/c/fa6e24963342de4370e3a3c9af41e38277b74cf3