dm-verity: fix buffer overflow in FEC calculation
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.114, 6.18.42, 7.1.5
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: total
Summary
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.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From a739ff3f543afbb4a041c16cd0182c8e8d366e70 · fixed in 374775626c327aec2425c16b4d36706e5f8718b8; From a739ff3f543afbb4a041c16cd0182c8e8d366e70 · fixed in dc662eed1c432cc2fd4e9314f58d30b3a8cca7cc; From a739ff3f543afbb4a041c16cd0182c8e8d366e70 · fixed in 5488d3a69d205e28f74f18857b853aa12e778e66; From a739ff3f543afbb4a041c16cd0182c8e8d366e70 · fixed in f7990c2b0f08b8841fcd2652d1d7002f5994a7a7; From a739ff3f543afbb4a041c16cd0182c8e8d366e70 · fixed in 31d6e6c0ba8d5a7bd59660035a089307100c5e8e
- Linux Linux
4.5
- KernelLinux
From 4.5.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.114; From 6.13.0 · fixed in 6.18.42; From 6.19.0 · fixed in 7.1.5