Description
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]
Product status
e1e3a46706bd4037e8b7407dc660ae6e05b8ac56 (git) before 89312657337e6e03ad6e9ea1a462bd9c158c85c8
265242d82a3c6a8bd9120d06b4801f8d7ae9a346 (git) before c807ccdd812d18985860504b503899f3140a9549
30696378f68a9e3dad6bfe55938b112e72af00c2 (git) before e972231db29b5d1dccc13bf9d5ba55b6979a69ed
30696378f68a9e3dad6bfe55938b112e72af00c2 (git) before dc2f60de9a7d3efd982440117dab5579898d808c
30696378f68a9e3dad6bfe55938b112e72af00c2 (git) before fedecaeef88899d940b69368c996e8b3b0b8650d
30696378f68a9e3dad6bfe55938b112e72af00c2 (git) before e95d7a8a6edd14f8fab44c777dd7281db91f6ae2
30696378f68a9e3dad6bfe55938b112e72af00c2 (git) before f77990358628b01bdc03752126ff5f716ea37615
30696378f68a9e3dad6bfe55938b112e72af00c2 (git) before 25fb4e3402d46f425ec135ef6f09792a4c1b3003
30696378f68a9e3dad6bfe55938b112e72af00c2 (git) before fe8c3623ab06603eb760444a032d426542212021
ec7f99261da9a20d63cbd273511a11a2efe698f2 (git)
f250e4c562a3bd106575032666e9ef46f31231f8 (git)
fffdbf586866e9500b53c9d4b061d3983720375a (git)
9e969ba431b46b1891c88cea36f722f3bfe8a180 (git)
5.0
Any version before 5.0
4.14.326 (semver)
4.19.295 (semver)
5.4.257 (semver)
5.10.195 (semver)
5.15.132 (semver)
6.1.53 (semver)
6.4.16 (semver)
6.5.3 (semver)
6.6 (original_commit_for_fix)
References
git.kernel.org/...c/89312657337e6e03ad6e9ea1a462bd9c158c85c8
git.kernel.org/...c/c807ccdd812d18985860504b503899f3140a9549
git.kernel.org/...c/e972231db29b5d1dccc13bf9d5ba55b6979a69ed
git.kernel.org/...c/dc2f60de9a7d3efd982440117dab5579898d808c
git.kernel.org/...c/fedecaeef88899d940b69368c996e8b3b0b8650d
git.kernel.org/...c/e95d7a8a6edd14f8fab44c777dd7281db91f6ae2
git.kernel.org/...c/f77990358628b01bdc03752126ff5f716ea37615
git.kernel.org/...c/25fb4e3402d46f425ec135ef6f09792a4c1b3003
git.kernel.org/...c/fe8c3623ab06603eb760444a032d426542212021