High · published July 9, 2025
In the Linux kernel, the following vulnerability has been resolved:
s390/pkey: Prevent overflow in size calculation for memdup_user()
Number of apqn target list entries contained in 'nr_apqns' variable is
determined by userspace via an ioctl call so the result of the product in
calculation of size passed to memdup_user() may overflow.
In this case the actual size of the allocated area and the value
describing it won't be in sync leading to various types of unpredictable
behaviour later.
Use a proper memdup_array_user() helper which returns an error if an
overflow is detected. Note that it is different from when nr_apqns is
initially zero - that case is considered valid and should be handled in
subsequent pkey_handler implementations.
Found by Linux Verification Center (linuxtesting.org).
| Product | Versions | Fixed in |
|---|---|---|
| linux/linux_kernel | ≥ 5.4, < 5.15.187 | 5.15.187 |
| linux/linux_kernel | ≥ 5.16, < 6.1.143 | 6.1.143 |
| linux/linux_kernel | ≥ 6.2, < 6.6.96 | 6.6.96 |
| linux/linux_kernel | ≥ 6.7, < 6.12.36 | 6.12.36 |
| linux/linux_kernel | ≥ 6.13, < 6.15.5 | 6.15.5 |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| linux/linux_kernel | all versions | — |
| debian/debian_linux | all versions | — |