In the Linux kernel, the following vulnerability has been resolved:
tracing/osnoise: Fix crash in timerlatdumpstack()
We have observed kernel panics when using timerlat with stack saving, with the following dmesg output:
memcpy: detected buffer overflow: 88 byte write of buffer size 0 WARNING: CPU: 2 PID: 8153 at lib/stringhelpers.c:1032 _fortifyreport+0x55/0xa0 CPU: 2 UID: 0 PID: 8153 Comm: timerlatu/2 Kdump: loaded Not tainted 6.15.3-200.fc42.x8664 #1 PREEMPT(lazy) Call Trace: <TASK> ? tracebufferlockreserve+0x2a/0x60 _fortifypanic+0xd/0xf _timerlatdumpstack.cold+0xd/0xd timerlatdumpstack.part.0+0x47/0x80 timerlatfdread+0x36d/0x390 vfsread+0xe2/0x390 ? syscallexittousermode+0x1d5/0x210 ksysread+0x73/0xe0 dosyscall64+0x7b/0x160 ? excpagefault+0x7e/0x1a0 entrySYSCALL64afterhwframe+0x76/0x7e
_timerlatdump_stack() constructs the ftrace stack entry like this:
struct stackentry *entry; ... memcpy(&entry->caller, fstack->calls, size); entry->size = fstack->nrentries;
Since commit e7186af7fb26 ("tracing: Add back FORTIFYSOURCE logic to kernelstack event structure"), struct stackentry marks its caller field with _counted_by(size). At the time of the memcpy, entry->size contains garbage from the ringbuffer, which under some circumstances is zero, triggering a kernel panic by buffer overflow.
Populate the size field before the memcpy so that the out-of-bounds check knows the correct size. This is analogous to _ftracetrace_stack().
[
{
"id": "CVE-2025-38493-1824a3c0",
"digest": {
"line_hashes": [
"91935373154598794274811423262407300997",
"303500249802711309785630198538231569056",
"199419567778677250648237465081066554906",
"56085924062899135476115307877103857359",
"329039899177092995885677060574769784183"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7bb9ea515cda027c9e717e27fefcf34f092e7c41",
"target": {
"file": "kernel/trace/trace_osnoise.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2025-38493-299c17de",
"digest": {
"length": 438.0,
"function_hash": "256752183395134334620662255783375616039"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7bb9ea515cda027c9e717e27fefcf34f092e7c41",
"target": {
"file": "kernel/trace/trace_osnoise.c",
"function": "__timerlat_dump_stack"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2025-38493-6f49dbee",
"digest": {
"length": 360.0,
"function_hash": "297787803733172043002585244700796723843"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@85a3bce695b361d85fc528e6fbb33e4c8089c806",
"target": {
"file": "kernel/trace/trace_osnoise.c",
"function": "__timerlat_dump_stack"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2025-38493-79415d3b",
"digest": {
"line_hashes": [
"91935373154598794274811423262407300997",
"303500249802711309785630198538231569056",
"216126757526545438214351560959922501257",
"20958200706865357589850952227195662044",
"44978438300075468593046086882318052239"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fbf90f5aa7ac7cddc69148a71d58f12c8709ce2b",
"target": {
"file": "kernel/trace/trace_osnoise.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2025-38493-821f7d31",
"digest": {
"length": 438.0,
"function_hash": "256752183395134334620662255783375616039"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@823d798900481875ba6c68217af028c5ffd2976b",
"target": {
"file": "kernel/trace/trace_osnoise.c",
"function": "__timerlat_dump_stack"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2025-38493-a31e9d02",
"digest": {
"line_hashes": [
"91935373154598794274811423262407300997",
"303500249802711309785630198538231569056",
"199419567778677250648237465081066554906",
"56085924062899135476115307877103857359",
"329039899177092995885677060574769784183"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@823d798900481875ba6c68217af028c5ffd2976b",
"target": {
"file": "kernel/trace/trace_osnoise.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
},
{
"id": "CVE-2025-38493-ac19d1d4",
"digest": {
"length": 360.0,
"function_hash": "297787803733172043002585244700796723843"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@fbf90f5aa7ac7cddc69148a71d58f12c8709ce2b",
"target": {
"file": "kernel/trace/trace_osnoise.c",
"function": "__timerlat_dump_stack"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1"
},
{
"id": "CVE-2025-38493-fe8dd346",
"digest": {
"line_hashes": [
"91935373154598794274811423262407300997",
"303500249802711309785630198538231569056",
"216126757526545438214351560959922501257",
"20958200706865357589850952227195662044",
"44978438300075468593046086882318052239"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@85a3bce695b361d85fc528e6fbb33e4c8089c806",
"target": {
"file": "kernel/trace/trace_osnoise.c"
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1"
}
]