net: mvpp2: Prevent parser TCAM memory corruption
- 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
- Fix
- Fixed in 5.15.180, 6.1.134, 6.6.87, 6.12.23, 6.13.11, and 1 more
- 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: net: mvpp2: Prevent parser TCAM memory corruption Protect the parser TCAM/SRAM memory, and the cached (shadow) SRAM information, from concurrent modifications. Both the TCAM and SRAM tables are indirectly accessed by configuring an index register that selects the row to read or write to. This means that operations must be atomic in order to, e.g., avoid spreading writes across multiple rows. Since the shadow SRAM array is used to find free rows in the hardware table, it must also be protected in order to avoid TOCTOU errors where multiple cores allocate the same row. This issue was detected in a situation where `mvpp2_set_rx_mode()` ran concurrently on two CPUs. In this particular case the MVPP2_PE_MAC_UC_PROMISCUOUS entry was corrupted, causing the classifier unit to drop all incoming unicast - indicated by the `rx_classifier_drops` counter.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 3f518509dedc99f0b755d2ce68d24f610e3a005a · fixed in e3711163d14d02af9005e4cdad30899c565f13fb; From 3f518509dedc99f0b755d2ce68d24f610e3a005a · fixed in b3f48a41a00d6d8d9c6fe09ae47dd21c8c1c8b03; From 3f518509dedc99f0b755d2ce68d24f610e3a005a · fixed in 5b0ae1723a7d9574ae1aee7d9cf9757a30069865; From 3f518509dedc99f0b755d2ce68d24f610e3a005a · fixed in fcbfb54a0269875cf3cd6a2bff4f85a2e0a0b552; From 3f518509dedc99f0b755d2ce68d24f610e3a005a · fixed in e64e9b6e86b39db3baa576fd73da73533b54cb2d; From 3f518509dedc99f0b755d2ce68d24f610e3a005a · fixed in 46c1e23e34c9d1eaadf37f88216d9d8ce0d0bcee; From 3f518509dedc99f0b755d2ce68d24f610e3a005a · fixed in 96844075226b49af25a69a1d084b648ec2d9b08d
- Linux Linux
3.17
- KernelLinux
From 3.17.0 · fixed in 5.15.180; From 5.16.0 · fixed in 6.1.134; From 6.2.0 · fixed in 6.6.87; From 6.7.0 · fixed in 6.12.23; From 6.13.0 · fixed in 6.13.11; From 6.14.0 · fixed in 6.14.2
References 7
git.kernel.org
- stable/c/e3711163d14d02af9005e4cdad30899c565f13fb
- stable/c/b3f48a41a00d6d8d9c6fe09ae47dd21c8c1c8b03
- stable/c/5b0ae1723a7d9574ae1aee7d9cf9757a30069865
- stable/c/fcbfb54a0269875cf3cd6a2bff4f85a2e0a0b552
- stable/c/e64e9b6e86b39db3baa576fd73da73533b54cb2d
- stable/c/46c1e23e34c9d1eaadf37f88216d9d8ce0d0bcee
- stable/c/96844075226b49af25a69a1d084b648ec2d9b08d