In the Linux kernel, the following vulnerability has been resolved:
OPP: Fix race between OPP addition and lookup
A race exists between devpmoppadddynamic() and devpmoppfindfreq_exact():
CPU0 (add) CPU1 (lookup) ------------------------------- ------------------------------ oppadd() mutexlock() listadd(&newopp->node, head) mutexunlock() opptablefindkey() mutexlock() devpmoppget(opp) krefget() mutexunlock() krefinit(&newopp->kref) devpmoppput() krefput_mutex()
The newly added OPP is inserted into the list before its kref is initialized. A concurrent lookup can find this OPP and increment its reference count while it is still uninitialized, leading to refcount corruption and a potential premature free.
Fix this by initializing ->kref and ->opptable before making the OPP visible via listadd(). This ensures any concurrent lookup observes a fully initialized object.
[ Viresh: Updated commit log ]
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74405.json",
"cna_assigner": "Linux"
}