Description
In the Linux kernel, the following vulnerability has been resolved: mtd: mtdoops: free page bitmap when the backing MTD is removed mtdoops_notify_add() allocates oops_page_used when the configured MTD device is registered. mtdoops_notify_remove() detaches from that device but leaves the bitmap allocated. If the same MTD device is later registered again, the add path allocates a new bitmap and overwrites the old pointer, leaking one vmalloc allocation per remove/add cycle. This is only visible when the backing MTD device can disappear and be registered again while mtdoops remains loaded, so the usual static MTD case does not expose it. Free the bitmap after unregistering the dumper and flushing the pending workers, then clear the pointer and page count before a later attach can allocate fresh state. Clearing the pointer also keeps the module exit path from freeing the same bitmap a second time after a remove event.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
be95745f01677245a061a8f51473ef5ec8ad008e to < 477d61d54e097e90f748aa18d013805abd56bcbdaffectedbe95745f01677245a061a8f51473ef5ec8ad008e to < a91ac71e67c3e01ed9afd9841435bebb930293f8affectedbe95745f01677245a061a8f51473ef5ec8ad008e to < 698944132083d143ef965c0090ee14ba1d9e1a5faffectedbe95745f01677245a061a8f51473ef5ec8ad008e to < f25c804947e0a28c15e73da8e2e0db959cbed716affectedbe95745f01677245a061a8f51473ef5ec8ad008e to < 8414f0e9f707226de20b48c7048179fd86d352fcaffectedbe95745f01677245a061a8f51473ef5ec8ad008e to < d06f91a52af11630c9f7e487f6daf242ac310cb8affectedbe95745f01677245a061a8f51473ef5ec8ad008e to < 1e5cd8bc902331ff801df88cbb299029ae062753affectedbe95745f01677245a061a8f51473ef5ec8ad008e to < 956e7da12c114f13c63d126ab1d79c3b6a819060affected
Linux Linux
Default version status: affected
2.6.33affected0 to < 2.6.33unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.51 to ≤ 6.18.*unaffected7.2.5 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/477d61d54e097e90f748aa18d013805abd56bcbd ↗
- https://git.kernel.org/stable/c/a91ac71e67c3e01ed9afd9841435bebb930293f8 ↗
- https://git.kernel.org/stable/c/698944132083d143ef965c0090ee14ba1d9e1a5f ↗
- https://git.kernel.org/stable/c/f25c804947e0a28c15e73da8e2e0db959cbed716 ↗
- https://git.kernel.org/stable/c/8414f0e9f707226de20b48c7048179fd86d352fc ↗
- https://git.kernel.org/stable/c/d06f91a52af11630c9f7e487f6daf242ac310cb8 ↗
- https://git.kernel.org/stable/c/1e5cd8bc902331ff801df88cbb299029ae062753 ↗
- https://git.kernel.org/stable/c/956e7da12c114f13c63d126ab1d79c3b6a819060 ↗