Nov. 18, 2022, 2:17 p.m. |

Packet Storm packetstormsecurity.com

In AppleAVD.kext, pixel buffers are mapped by calling AppleAVDUserClient::_mapPixelBuffer, which eventually calls AppleAVD::allocateKernelMemoryInternal. If the buffer is an IOSurface, the function calls IOSurface::deviceLockSurface before allocating memory by calling prepare. But when a pixel buffer is unmapped by calling AppleAVDUserClient::_unmapPixelBuffer, which calls AppleAVD::deallocateKernelMemoryInternal, the IOSurface is not locked before calling complete. This means that mapping and unmapping can occur at the same time, leading to kernel memory corruption. This bug could allow escalation to kernel privileges from a local app.

appleavd lock

Network Security Administrator

@ Peraton | United States

IT Security Engineer 2

@ Oracle | BENGALURU, KARNATAKA, India

Sr Cybersecurity Forensics Specialist

@ Health Care Service Corporation | Chicago (200 E. Randolph Street)

Security Engineer

@ Apple | Hyderabad, Telangana, India

Cyber GRC & Awareness Lead

@ Origin Energy | Adelaide, SA, AU, 5000

Senior Security Analyst

@ Prenuvo | Vancouver, British Columbia, Canada