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 wlshm 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 wlshm_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.
{ "availability": "Available with Ubuntu Pro (Infra-only): https://ubuntu.com/pro", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "1.12.0-1~ubuntu16.04.3+esm1", "binary_name": "libwayland-bin" }, { "binary_version": "1.12.0-1~ubuntu16.04.3+esm1", "binary_name": "libwayland-bin-dbgsym" }, { "binary_version": "1.12.0-1~ubuntu16.04.3+esm1", "binary_name": "libwayland-client0" }, { "binary_version": "1.12.0-1~ubuntu16.04.3+esm1", "binary_name": "libwayland-client0-dbgsym" }, { "binary_version": "1.12.0-1~ubuntu16.04.3+esm1", "binary_name": "libwayland-cursor0" }, { "binary_version": "1.12.0-1~ubuntu16.04.3+esm1", "binary_name": "libwayland-cursor0-dbgsym" }, { "binary_version": "1.12.0-1~ubuntu16.04.3+esm1", "binary_name": "libwayland-dev" }, { "binary_version": "1.12.0-1~ubuntu16.04.3+esm1", "binary_name": "libwayland-doc" }, { "binary_version": "1.12.0-1~ubuntu16.04.3+esm1", "binary_name": "libwayland-server0" }, { "binary_version": "1.12.0-1~ubuntu16.04.3+esm1", "binary_name": "libwayland-server0-dbgsym" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-bin" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-bin-dbgsym" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-client0" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-client0-dbgsym" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-cursor0" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-cursor0-dbgsym" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-dev" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-doc" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-egl-backend-dev" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-egl1" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-egl1-dbgsym" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-server0" }, { "binary_version": "1.16.0-1ubuntu1.1~18.04.4", "binary_name": "libwayland-server0-dbgsym" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-bin" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-bin-dbgsym" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-client0" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-client0-dbgsym" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-cursor0" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-cursor0-dbgsym" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-dev" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-doc" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-egl-backend-dev" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-egl1" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-egl1-dbgsym" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-server0" }, { "binary_version": "1.18.0-1ubuntu0.1", "binary_name": "libwayland-server0-dbgsym" } ] }
{ "availability": "No subscription required", "ubuntu_priority": "medium", "binaries": [ { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-bin" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-bin-dbgsym" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-client0" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-client0-dbgsym" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-cursor0" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-cursor0-dbgsym" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-dev" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-doc" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-egl-backend-dev" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-egl1" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-egl1-dbgsym" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-server0" }, { "binary_version": "1.20.0-1ubuntu0.1", "binary_name": "libwayland-server0-dbgsym" } ] }