Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: mm/vmalloc: do not trigger BUG() on BH disabled context __get_vm_area_node() currently triggers a BUG() if in_interrupt() returns true. However, in_interrupt() also reports true when BH are disabled. The bridge code can call rhashtable_lookup_insert_fast() with bottom halves disabled: __vlan_add() -> br_fdb_add_local() spin_lock_bh(&br->hash_lock); <-- Disable BH -> fdb_add_local() -> fdb_create() -> rhashtable_lookup_insert_fast() -> kvmalloc() -> vmalloc() -> __get_vm_area_node() -> BUG_ON(in_interrupt()) spin_unlock_bh(&br->hash_lock) this triggers the BUG() despite the caller not being in NMI or hard IRQ context. Replace the in_interrupt() check with in_nmi() || in_hardirq().
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected c6307674ed82c0c57d6e1e3408e84ac449ab8e94 before ad7eff07b625f53c3fb513b30d7a8c5a79fbc7ce; affected c6307674ed82c0c57d6e1e3408e84ac449ab8e94 before 04aa71da5f35aacdc9ae9cb5150947daa624f641 |
| Linux / Linux | affected 6.19; unaffected 0 before 6.19; unaffected 7.0.12 through 7.0.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.