Description
In the Linux kernel, the following vulnerability has been resolved: dm-verity: fix buffer overflow in FEC calculation There's a buffer overflow in dm-verity-fec: if (neras && *neras <= v->fec->roots) fio->erasures[(*neras)++] = i; This allows *neras to reach roots + 1 (the post-increment pushes it past roots). This value is then passed as no_eras to decode_rs8(). Inside the RS decoder (lib/reed_solomon/decode_rs.c:113-121), the erasure locator polynomial loop writes lambda[j] where j can reach nroots + 1 — one element past the end of lambda[] (which is sized nroots + 1, valid indices 0..nroots). The out-of-bounds write lands on syn[0], corrupting the syndrome buffer.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
a739ff3f543afbb4a041c16cd0182c8e8d366e70 to < 374775626c327aec2425c16b4d36706e5f8718b8affecteda739ff3f543afbb4a041c16cd0182c8e8d366e70 to < dc662eed1c432cc2fd4e9314f58d30b3a8cca7ccaffecteda739ff3f543afbb4a041c16cd0182c8e8d366e70 to < 5488d3a69d205e28f74f18857b853aa12e778e66affecteda739ff3f543afbb4a041c16cd0182c8e8d366e70 to < f7990c2b0f08b8841fcd2652d1d7002f5994a7a7affecteda739ff3f543afbb4a041c16cd0182c8e8d366e70 to < 31d6e6c0ba8d5a7bd59660035a089307100c5e8eaffected
Linux Linux
Default version status: affected
4.5affected0 to < 4.5unaffected6.6.160 to ≤ 6.6.*unaffected6.12.114 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.1.5 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/374775626c327aec2425c16b4d36706e5f8718b8 ↗
- https://git.kernel.org/stable/c/dc662eed1c432cc2fd4e9314f58d30b3a8cca7cc ↗
- https://git.kernel.org/stable/c/5488d3a69d205e28f74f18857b853aa12e778e66 ↗
- https://git.kernel.org/stable/c/f7990c2b0f08b8841fcd2652d1d7002f5994a7a7 ↗
- https://git.kernel.org/stable/c/31d6e6c0ba8d5a7bd59660035a089307100c5e8e ↗