pstore/ram: Check start of empty przs during init
- 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 4.14.326, 4.19.295, 3.19, 4.5, 4.10, and 1 more
- 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: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: pstore/ram: Check start of empty przs during init After commit 30696378f68a ("pstore/ram: Do not treat empty buffers as valid"), initialization would assume a prz was valid after seeing that the buffer_size is zero (regardless of the buffer start position). This unchecked start value means it could be outside the bounds of the buffer, leading to future access panics when written to: sysdump_panic_event+0x3b4/0x5b8 atomic_notifier_call_chain+0x54/0x90 panic+0x1c8/0x42c die+0x29c/0x2a8 die_kernel_fault+0x68/0x78 __do_kernel_fault+0x1c4/0x1e0 do_bad_area+0x40/0x100 do_translation_fault+0x68/0x80 do_mem_abort+0x68/0xf8 el1_da+0x1c/0xc0 __raw_writeb+0x38/0x174 __memcpy_toio+0x40/0xac persistent_ram_update+0x44/0x12c persistent_ram_write+0x1a8/0x1b8 ramoops_pstore_write+0x198/0x1e8 pstore_console_write+0x94/0xe0 ... To avoid this, also check if the prz start is 0 during the initialization phase. If not, the next prz sanity check case will discover it (start > size) and zap the buffer back to a sane state. [kees: update commit log with backtrace and clarifications]
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 4.14.96 · fixed in 4.14.326; From 4.19.18 · fixed in 4.19.295; From 3.18.133 · fixed in 3.19; From 4.4.172 · fixed in 4.5; From 4.9.153 · fixed in 4.10; From 4.20.5 · fixed in 4.21
- Linux Linux
5.0
References 9
git.kernel.org
- stable/c/89312657337e6e03ad6e9ea1a462bd9c158c85c8
- stable/c/c807ccdd812d18985860504b503899f3140a9549
- stable/c/e972231db29b5d1dccc13bf9d5ba55b6979a69ed
- stable/c/dc2f60de9a7d3efd982440117dab5579898d808c
- stable/c/fedecaeef88899d940b69368c996e8b3b0b8650d
- stable/c/e95d7a8a6edd14f8fab44c777dd7281db91f6ae2
- stable/c/f77990358628b01bdc03752126ff5f716ea37615
- stable/c/25fb4e3402d46f425ec135ef6f09792a4c1b3003
- stable/c/fe8c3623ab06603eb760444a032d426542212021