{"id":"CVE-2022-50094","state":"PUBLISHED","title":"spmi: trace: fix stack-out-of-bound access in SPMI tracing functions","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nspmi: trace: fix stack-out-of-bound access in SPMI tracing functions\n\ntrace_spmi_write_begin() and trace_spmi_read_end() both call\nmemcpy() with a length of \"len + 1\".  This leads to one extra\nbyte being read beyond the end of the specified buffer.  Fix\nthis out-of-bound memory access by using a length of \"len\"\ninstead.\n\nHere is a KASAN log showing the issue:\n\nBUG: KASAN: stack-out-of-bounds in trace_event_raw_event_spmi_read_end+0x1d0/0x234\nRead of size 2 at addr ffffffc0265b7540 by task thermal@2.0-ser/1314\n...\nCall trace:\n dump_backtrace+0x0/0x3e8\n show_stack+0x2c/0x3c\n dump_stack_lvl+0xdc/0x11c\n print_address_description+0x74/0x384\n kasan_report+0x188/0x268\n kasan_check_range+0x270/0x2b0\n memcpy+0x90/0xe8\n trace_event_raw_event_spmi_read_end+0x1d0/0x234\n spmi_read_cmd+0x294/0x3ac\n spmi_ext_register_readl+0x84/0x9c\n regmap_spmi_ext_read+0x144/0x1b0 [regmap_spmi]\n _regmap_raw_read+0x40c/0x754\n regmap_raw_read+0x3a0/0x514\n regmap_bulk_read+0x418/0x494\n adc5_gen3_poll_wait_hs+0xe8/0x1e0 [qcom_spmi_adc5_gen3]\n ...\n __arm64_sys_read+0x4c/0x60\n invoke_syscall+0x80/0x218\n el0_svc_common+0xec/0x1c8\n ...\n\naddr ffffffc0265b7540 is located in stack of task thermal@2.0-ser/1314 at offset 32 in frame:\n adc5_gen3_poll_wait_hs+0x0/0x1e0 [qcom_spmi_adc5_gen3]\n\nthis frame has 1 object:\n [32, 33) 'status'\n\nMemory state around the buggy address:\n ffffffc0265b7400: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1\n ffffffc0265b7480: 04 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00\n>ffffffc0265b7500: 00 00 00 00 f1 f1 f1 f1 01 f3 f3 f3 00 00 00 00\n                                           ^\n ffffffc0265b7580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n ffffffc0265b7600: f1 f1 f1 f1 01 f2 07 f2 f2 f2 01 f3 00 00 00 00\n==================================================================","publishedAt":"2025-06-18T11:02:32.591Z","updatedAt":"2026-05-11T19:12:42.927Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"80f7c93e573ea9f524924bb529c2af8cb28b1c43","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"dc6033a7761254e5a5ba7df36b64db787a53313c","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"ac730c72bddc889f5610d51d8a7abf425e08da1a","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"37690cb8662cec672cacda19e6e4fd2ca7b13f0b","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"dd02510fb43168310abfd0b9ccf49993a722fb91","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"1e0ca3d809c36ad3d1f542917718fc22ec6316e7","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"bcc1b6b1ed3f42ed25858c1f1eb24a2f741db93f","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"504090815c1ad3fd3fa34618b54d706727f8911c","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"2af28b241eea816e6f7668d1954f15894b45d7e3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/trace/events/spmi.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.3","versionType":"semver"},{"version":"4.9.326","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.291","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.256","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.211","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.137","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.61","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.18.18","status":"unaffected","lessThanOrEqual":"5.18.*","versionType":"semver"},{"version":"5.19.2","status":"unaffected","lessThanOrEqual":"5.19.*","versionType":"semver"},{"version":"6.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/trace/events/spmi.h"]}],"references":["https://git.kernel.org/stable/c/80f7c93e573ea9f524924bb529c2af8cb28b1c43","https://git.kernel.org/stable/c/dc6033a7761254e5a5ba7df36b64db787a53313c","https://git.kernel.org/stable/c/ac730c72bddc889f5610d51d8a7abf425e08da1a","https://git.kernel.org/stable/c/37690cb8662cec672cacda19e6e4fd2ca7b13f0b","https://git.kernel.org/stable/c/dd02510fb43168310abfd0b9ccf49993a722fb91","https://git.kernel.org/stable/c/1e0ca3d809c36ad3d1f542917718fc22ec6316e7","https://git.kernel.org/stable/c/bcc1b6b1ed3f42ed25858c1f1eb24a2f741db93f","https://git.kernel.org/stable/c/504090815c1ad3fd3fa34618b54d706727f8911c","https://git.kernel.org/stable/c/2af28b241eea816e6f7668d1954f15894b45d7e3"],"weaknesses":[],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/50xxx/CVE-2022-50094.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-50094","state":"PUBLISHED","datePublished":"2025-06-18T11:02:32.591Z","dateUpdated":"2026-05-11T19:12:42.927Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-06-18T10:57:27.411Z"},"containers":{"cna":{"title":"spmi: trace: fix stack-out-of-bound access in SPMI tracing functions","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nspmi: trace: fix stack-out-of-bound access in SPMI tracing functions\n\ntrace_spmi_write_begin() and trace_spmi_read_end() both call\nmemcpy() with a length of \"len + 1\".  This leads to one extra\nbyte being read beyond the end of the specified buffer.  Fix\nthis out-of-bound memory access by using a length of \"len\"\ninstead.\n\nHere is a KASAN log showing the issue:\n\nBUG: KASAN: stack-out-of-bounds in trace_event_raw_event_spmi_read_end+0x1d0/0x234\nRead of size 2 at addr ffffffc0265b7540 by task thermal@2.0-ser/1314\n...\nCall trace:\n dump_backtrace+0x0/0x3e8\n show_stack+0x2c/0x3c\n dump_stack_lvl+0xdc/0x11c\n print_address_description+0x74/0x384\n kasan_report+0x188/0x268\n kasan_check_range+0x270/0x2b0\n memcpy+0x90/0xe8\n trace_event_raw_event_spmi_read_end+0x1d0/0x234\n spmi_read_cmd+0x294/0x3ac\n spmi_ext_register_readl+0x84/0x9c\n regmap_spmi_ext_read+0x144/0x1b0 [regmap_spmi]\n _regmap_raw_read+0x40c/0x754\n regmap_raw_read+0x3a0/0x514\n regmap_bulk_read+0x418/0x494\n adc5_gen3_poll_wait_hs+0xe8/0x1e0 [qcom_spmi_adc5_gen3]\n ...\n __arm64_sys_read+0x4c/0x60\n invoke_syscall+0x80/0x218\n el0_svc_common+0xec/0x1c8\n ...\n\naddr ffffffc0265b7540 is located in stack of task thermal@2.0-ser/1314 at offset 32 in frame:\n adc5_gen3_poll_wait_hs+0x0/0x1e0 [qcom_spmi_adc5_gen3]\n\nthis frame has 1 object:\n [32, 33) 'status'\n\nMemory state around the buggy address:\n ffffffc0265b7400: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1\n ffffffc0265b7480: 04 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00\n>ffffffc0265b7500: 00 00 00 00 f1 f1 f1 f1 01 f3 f3 f3 00 00 00 00\n                                           ^\n ffffffc0265b7580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n ffffffc0265b7600: f1 f1 f1 f1 01 f2 07 f2 f2 f2 01 f3 00 00 00 00\n=================================================================="}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"80f7c93e573ea9f524924bb529c2af8cb28b1c43","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"dc6033a7761254e5a5ba7df36b64db787a53313c","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"ac730c72bddc889f5610d51d8a7abf425e08da1a","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"37690cb8662cec672cacda19e6e4fd2ca7b13f0b","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"dd02510fb43168310abfd0b9ccf49993a722fb91","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"1e0ca3d809c36ad3d1f542917718fc22ec6316e7","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"bcc1b6b1ed3f42ed25858c1f1eb24a2f741db93f","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"504090815c1ad3fd3fa34618b54d706727f8911c","versionType":"git"},{"version":"a9fce374815d8ab94a3e6259802a944e2cc21408","status":"affected","lessThan":"2af28b241eea816e6f7668d1954f15894b45d7e3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/trace/events/spmi.h"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"4.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"4.3","versionType":"semver"},{"version":"4.9.326","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.291","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.256","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.211","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.137","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.61","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"5.18.18","status":"unaffected","lessThanOrEqual":"5.18.*","versionType":"semver"},{"version":"5.19.2","status":"unaffected","lessThanOrEqual":"5.19.*","versionType":"semver"},{"version":"6.0","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["include/trace/events/spmi.h"]}],"references":[{"url":"https://git.kernel.org/stable/c/80f7c93e573ea9f524924bb529c2af8cb28b1c43"},{"url":"https://git.kernel.org/stable/c/dc6033a7761254e5a5ba7df36b64db787a53313c"},{"url":"https://git.kernel.org/stable/c/ac730c72bddc889f5610d51d8a7abf425e08da1a"},{"url":"https://git.kernel.org/stable/c/37690cb8662cec672cacda19e6e4fd2ca7b13f0b"},{"url":"https://git.kernel.org/stable/c/dd02510fb43168310abfd0b9ccf49993a722fb91"},{"url":"https://git.kernel.org/stable/c/1e0ca3d809c36ad3d1f542917718fc22ec6316e7"},{"url":"https://git.kernel.org/stable/c/bcc1b6b1ed3f42ed25858c1f1eb24a2f741db93f"},{"url":"https://git.kernel.org/stable/c/504090815c1ad3fd3fa34618b54d706727f8911c"},{"url":"https://git.kernel.org/stable/c/2af28b241eea816e6f7668d1954f15894b45d7e3"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-05-11T19:12:42.927Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"4.9.326"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"4.14.291"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"4.19.256"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.4.211"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.10.137"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.15.61"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.18.18"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"5.19.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.3","versionEndExcluding":"6.0"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}