CVE-2025-68751: s390/fpu: Fix false-positive kmsan report in fpu_vstl()
In the Linux kernel, the following vulnerability has been resolved:
s390/fpu: Fix false-positive kmsan report in fpuvstl()
A false-positive kmsan report is detected when running ping command.
An inline assembly instruction 'vstl' can write varied amount of bytes depending on value of 'index' argument. If 'index' > 0, 'vstl' writes at least 2 bytes.
clang generates kmsan write helper call depending on inline assembly constraints. Constraints are evaluated compile-time, but value of 'index' argument is known only at runtime.
clang currently generates call to msaninstrumentasmstore with 1 byte as size. Manually call kmsan function to indicate correct amount of bytes written and fix false-positive report.
This change fixes following kmsan reports:
[ 36.563119] ===================================================== [ 36.563594] BUG: KMSAN: uninit-value in virtqueueadd+0x35c6/0x7c70 [ 36.563852] virtqueueadd+0x35c6/0x7c70 [ 36.564016] virtqueueaddoutbuf+0xa0/0xb0 [ 36.564266] startxmit+0x288c/0x4a20 [ 36.564460] devhardstartxmit+0x302/0x900 [ 36.564649] schdirectxmit+0x340/0xea0 [ 36.564894] devqueuexmit+0x2e94/0x59b0 [ 36.565058] neighresolveoutput+0x936/0xb40 [ 36.565278] neighupdate+0x2f66/0x3a60 [ 36.565499] neighupdate+0x52/0x60 [ 36.565683] arpprocess+0x1588/0x2de0 [ 36.565916] NFHOOK+0x1da/0x240 [ 36.566087] arprcv+0x3e4/0x6e0 [ 36.566306] netifreceiveskblistcore+0x1374/0x15a0 [ 36.566527] netifreceiveskblistinternal+0x1116/0x17d0 [ 36.566710] napicompletedone+0x376/0x740 [ 36.566918] virtnetpoll+0x1bae/0x2910 [ 36.567130] napipoll+0xf4/0x830 [ 36.567294] netrxaction+0x97c/0x1ed0 [ 36.567556] handlesoftirqs+0x306/0xe10 [ 36.567731] irqexitrcu+0x14c/0x2e0 [ 36.567910] doioirq+0xd4/0x120 [ 36.568139] iointhandler+0xc2/0xe8 [ 36.568299] archcpuidle+0xb0/0xc0 [ 36.568540] archcpuidle+0x76/0xc0 [ 36.568726] defaultidlecall+0x40/0x70 [ 36.568953] doidle+0x1d6/0x390 [ 36.569486] cpustartupentry+0x9a/0xb0 [ 36.569745] restinit+0x1ea/0x290 [ 36.570029] startkernel+0x95e/0xb90 [ 36.570348] startupcontinue+0x2e/0x40 [ 36.570703] [ 36.570798] Uninit was created at: [ 36.571002] kmemcacheallocnodenoprof+0x9e8/0x10e0 [ 36.571261] kmallocreserve+0x12a/0x470 [ 36.571553] allocskb+0x310/0x860 [ 36.571844] ipappenddata+0x483e/0x6a30 [ 36.572170] ipappenddata+0x11c/0x1e0 [ 36.572477] rawsendmsg+0x1c8c/0x2180 [ 36.572818] inetsendmsg+0xe6/0x190 [ 36.573142] syssendto+0x55e/0x8e0 [ 36.573392] s390xsyssocketcall+0x19ae/0x2ba0 [ 36.573571] dosyscall+0x12e/0x240 [ 36.573823] systemcall+0x6e/0x90 [ 36.573976] [ 36.574017] Byte 35 of 98 is uninitialized [ 36.574082] Memory access of size 98 starts at 0000000007aa0012 [ 36.574218] [ 36.574325] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G B N 6.17.0-dirty #16 NONE [ 36.574541] Tainted: [B]=BADPAGE, [N]=TEST [ 36.574617] Hardware name: IBM 3931 A01 703 (KVM/Linux) [ 36.574755] =====================================================
[ 63.532541] ===================================================== [ 63.533639] BUG: KMSAN: uninit-value in virtqueueadd+0x35c6/0x7c70 [ 63.533989] virtqueueadd+0x35c6/0x7c70 [ 63.534940] virtqueueaddoutbuf+0xa0/0xb0 [ 63.535861] startxmit+0x288c/0x4a20 [ 63.536708] devhardstartxmit+0x302/0x900 [ 63.537020] schdirectxmit+0x340/0xea0 [ 63.537997] devqueuexmit+0x2e94/0x59b0 [ 63.538819] neighresolveoutput+0x936/0xb40 [ 63.539793] ipfinishoutput2+0x1ee2/0x2200 [ 63.540784] ipfinishoutput+0x272/0x7a0 [ 63.541765] ipfinishoutput+0x4e/0x5e0 [ 63.542791] ipoutput+0x166/0x410 [ 63.543771] ippushpendingframes+0x1a2/0x470 [ 63.544753] rawsendmsg+0x1f06/0x2180 [ 63.545033] inetsendmsg+0xe6/0x190 [ 63.546006] syssendto+0x55e/0x8e0 ---truncated---
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
In s390/fpu fpu_vstl(), manually call the KMSAN function to indicate the correct amount of bytes written, including at least 2 bytes when applicable.
Event History
Frequently Asked Questions
What is the severity of CVE-2025-68751?
The severity of CVE-2025-68751 is considered low as it primarily involves a false-positive report in the kernel without any direct exploitability.
How do I fix CVE-2025-68751?
Fixing CVE-2025-68751 involves updating to the latest version of the Linux kernel where the vulnerability has been resolved.
What systems are affected by CVE-2025-68751?
CVE-2025-68751 affects the Linux kernel running on s390 architecture.
Can CVE-2025-68751 be exploited by attackers?
CVE-2025-68751 does not provide any exploit vectors for attackers as it is a false-positive report issue.
What should I do if my system is affected by CVE-2025-68751?
If your system is affected by CVE-2025-68751, you should apply the latest kernel updates provided by your Linux distribution.