An internal reference count is held on the buffer pool, incremented every time a new buffer is created from the pool. The reference count is maintained as an int; on LP64 systems this can cause the reference count to overflow if the client creates a large number of wl_shm buffer objects, or if it can coerce the server to create a large number of external references to the buffer storage. With the reference count overflowing, a use-after-free can be constructed on the wl_shm_pool tracking structure, where values may be incremented or decremented; it may also be possible to construct a limited oracle to leak 4 bytes of server-side memory to the attacking client at a time.
{
"license": "CC-BY-4.0",
"sources": [
{
"id": "CVE-2021-3782",
"published": "2022-09-23T16:15:10.143Z",
"imported": "2026-07-17T22:42:06.046Z",
"url": "https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2021-3782",
"html_url": "https://nvd.nist.gov/vuln/detail/CVE-2021-3782",
"modified": "2026-06-17T04:05:45.153Z",
"database_specific": {
"status": "Modified"
}
}
]
}