In the Linux kernel, the following vulnerability has been resolved: perf: Fix refcount warning on event->mmapcount increment When calling refcountinc(&event->mmapcount) inside perfmmaprb(), the following warning is triggered: refcountt: addition on 0; use-after-free. WARNING: lib/refcount.c:25 PoC: struct perfeventattr attr = {0}; int fd = syscall(_NRperfeventopen, &attr, 0, -1, -1, 0); mmap(NULL, 0x3000, PROTREAD | PROTWRITE, MAPSHARED, fd, 0); int victim = syscall(NRperfeventopen, &attr, 0, -1, fd, PERFFLAGFDOUTPUT); mmap(NULL, 0x3000, PROTREAD | PROTWRITE, MAPSHARED, victim, 0); This occurs when creating a group member event with the flag PERFFLAGFDOUTPUT. The group leader should be mmap-ed and then mmap-ing the event triggers the warning. Since the event has copied the outputevent in perfeventsetoutput(), event->rb is set. As a result, perfmmaprb() calls refcountinc(&event->mmapcount) when event->mmapcount = 0. Disallow the case when event->mmapcount = 0. This also prevents two events from updating the same userpage.