CVE-2024-57890
RDMA/uverbs: Prevent integer overflow issue
Severity Score
Exploit Likelihood
Affected Versions
Public Exploits
0Exploited in Wild
-Decision
Descriptions
In the Linux kernel, the following vulnerability has been resolved: RDMA/uverbs: Prevent integer overflow issue In the expression "cmd.wqe_size * cmd.wr_count", both variables are u32
values that come from the user so the multiplication can lead to integer
wrapping. Then we pass the result to uverbs_request_next_ptr() which also
could potentially wrap. The "cmd.sge_count * sizeof(struct ib_uverbs_sge)"
multiplication can also overflow on 32bit systems although it's fine on
64bit systems. This patch does two things. First, I've re-arranged the condition in
uverbs_request_next_ptr() so that the use controlled variable "len" is on
one side of the comparison by itself without any math. Then I've modified
all the callers to use size_mul() for the multiplications.
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: RDMA/uverbs: Evitar problema de desbordamiento de enteros En la expresión "cmd.wqe_size * cmd.wr_count", ambas variables son valores u32 que provienen del usuario, por lo que la multiplicación puede provocar un encapsulamiento de enteros. Luego, pasamos el resultado a uverbs_request_next_ptr(), que también podría potencialmente encapsularse. La multiplicación "cmd.sge_count * sizeof(struct ib_uverbs_sge)" también puede desbordarse en sistemas de 32 bits, aunque está bien en sistemas de 64 bits. Este parche hace dos cosas. Primero, he reorganizado la condición en uverbs_request_next_ptr() para que la variable controlada por uso "len" esté en un lado de la comparación por sí misma sin ningún cálculo. Luego, he modificado todos los llamadores para usar size_mul() para las multiplicaciones.
In the Linux kernel, the following vulnerability has been resolved: RDMA/uverbs: Prevent integer overflow issue In the expression "cmd.wqe_size * cmd.wr_count", both variables are u32 values that come from the user so the multiplication can lead to integer wrapping. Then we pass the result to uverbs_request_next_ptr() which also could potentially wrap. The "cmd.sge_count * sizeof(struct ib_uverbs_sge)" multiplication can also overflow on 32bit systems although it's fine on 64bit systems. This patch does two things. First, I've re-arranged the condition in uverbs_request_next_ptr() so that the use controlled variable "len" is on one side of the comparison by itself without any math. Then I've modified all the callers to use size_mul() for the multiplications.
CVSS Scores
SSVC
- Decision:-
Timeline
- 2025-01-11 CVE Reserved
- 2025-01-15 CVE Published
- 2025-01-15 CVE Updated
- 2025-01-16 EPSS Updated
- ---------- Exploited in Wild
- ---------- KEV Due Date
- ---------- First Exploit
CWE
CAPEC
References (8)
URL | Tag | Source |
---|---|---|
https://git.kernel.org/stable/c/67cdb40ca444c09853ab4d8a41cf547ac26a4de4 | Vuln. Introduced |
URL | Date | SRC |
---|
URL | Date | SRC |
---|
Affected Vendors, Products, and Versions
Vendor | Product | Version | Other | Status | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Vendor | Product | Version | Other | Status | <-- --> | Vendor | Product | Version | Other | Status |
Linux Search vendor "Linux" | Linux Kernel Search vendor "Linux" for product "Linux Kernel" | >= 2.6.15 < 5.4.289 Search vendor "Linux" for product "Linux Kernel" and version " >= 2.6.15 < 5.4.289" | en |
Affected
| ||||||
Linux Search vendor "Linux" | Linux Kernel Search vendor "Linux" for product "Linux Kernel" | >= 2.6.15 < 5.10.233 Search vendor "Linux" for product "Linux Kernel" and version " >= 2.6.15 < 5.10.233" | en |
Affected
| ||||||
Linux Search vendor "Linux" | Linux Kernel Search vendor "Linux" for product "Linux Kernel" | >= 2.6.15 < 5.15.176 Search vendor "Linux" for product "Linux Kernel" and version " >= 2.6.15 < 5.15.176" | en |
Affected
| ||||||
Linux Search vendor "Linux" | Linux Kernel Search vendor "Linux" for product "Linux Kernel" | >= 2.6.15 < 6.1.124 Search vendor "Linux" for product "Linux Kernel" and version " >= 2.6.15 < 6.1.124" | en |
Affected
| ||||||
Linux Search vendor "Linux" | Linux Kernel Search vendor "Linux" for product "Linux Kernel" | >= 2.6.15 < 6.6.70 Search vendor "Linux" for product "Linux Kernel" and version " >= 2.6.15 < 6.6.70" | en |
Affected
| ||||||
Linux Search vendor "Linux" | Linux Kernel Search vendor "Linux" for product "Linux Kernel" | >= 2.6.15 < 6.12.9 Search vendor "Linux" for product "Linux Kernel" and version " >= 2.6.15 < 6.12.9" | en |
Affected
| ||||||
Linux Search vendor "Linux" | Linux Kernel Search vendor "Linux" for product "Linux Kernel" | >= 2.6.15 < 6.13-rc6 Search vendor "Linux" for product "Linux Kernel" and version " >= 2.6.15 < 6.13-rc6" | en |
Affected
|