CVE-2025-37991: Linux kernel · parisc: Fix double SIGFPE crash
Affects Linux kernelSource GCVE Database
Not known to be exploited · CVSS 7.8 High · fixed in 5.15.0-1088.95~20.04.1 : patch Linux kernel soon.
Data as of 26 Oct 2026, 16:39 UTC
- EPSS
- 0.2% chance of exploitation in 30 days – higher than 13% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
- Patch
- Available – fixed in 5.15.0-1088.95~20.04.1, 5.15.0-1094.103~20.04.1, 5.15.0-1087.96~20.04.2 +63
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HExploitation evidence
Disclosed: evidence found.
CVE published 20 May 2025
Detectable: no evidence on record.
No public nuclei template indexed
Weaponised: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 26 Oct 2026.
What to do
Upgrade to a fixed release listed under Affected software.
Patches and advisories
- ubuntu.com/security/notices/USN-7649-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7650-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7654-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7654-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-7654-3 (opens in a new tab)
- ubuntu.com/security/notices/USN-7655-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7649-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-7654-4 (opens in a new tab)
- ubuntu.com/security/notices/USN-7665-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7665-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-7654-5 (opens in a new tab)
- ubuntu.com/security/notices/USN-7686-1 (opens in a new tab)
Affected software
| Product | Affected | Fixed in |
|---|---|---|
Ubuntu 25.10linux-azure-fdepkg:deb/ubuntu/linux-azure-fde?arch=source&distro=questingOther threats | Affected
| Fixed in– |
Ubuntu 24.04 LTSlinuxpkg:deb/ubuntu/linux?arch=source&distro=nobleOther threats | Affected
| Fixed in
|
Ubuntu 24.04 LTSlinux-awspkg:deb/ubuntu/linux-aws?arch=source&distro=nobleOther threats | Affected
| Fixed in
|
Ubuntu 24.04 LTSlinux-aws-6.14pkg:deb/ubuntu/linux-aws-6.14?arch=source&distro=nobleOther threats | Affected
| Fixed in
|
Ubuntu 24.04 LTSlinux-azurepkg:deb/ubuntu/linux-azure?arch=source&distro=nobleOther threats | Affected
| Fixed in
|
Ubuntu 24.04 LTSlinux-azure-6.11pkg:deb/ubuntu/linux-azure-6.11?arch=source&distro=nobleOther threats | Affected
| Fixed in– |
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
Description
In the Linux kernel, the following vulnerability has been resolved: parisc: Fix double SIGFPE crash Camm noticed that on parisc a SIGFPE exception will crash an application with a second SIGFPE in the signal handler. Dave analyzed it, and it happens because glibc uses a double-word floating-point store to atomically update function descriptors. As a result of lazy binding, we hit a floating-point store in fpe_func almost immediately. When the T bit is set, an assist exception trap occurs when when the co-processor encounters *any* floating-point instruction except for a double store of register %fr0. The latter cancels all pending traps. Let's fix this by clearing the Trap (T) bit in the FP status register before returning to the signal handler in userspace. The issue can be reproduced with this test program: root@parisc:~# cat fpe.c static void fpe_func(int sig, siginfo_t *i, void *v) { sigset_t set; sigemptyset(&set); sigaddset(&set, SIGFPE); sigprocmask(SIG_UNBLOCK, &set, NULL); printf("GOT signal %d with si_code %ld\n", sig, i->si_code); } int main() { struct sigaction action = { .sa_sigaction = fpe_func, .sa_flags = SA_RESTART|SA_SIGINFO }; sigaction(SIGFPE, &action, 0); feenableexcept(FE_OVERFLOW); return printf("%lf\n",1.7976931348623158E308*1.7976931348623158E308); } root@parisc:~# gcc fpe.c -lm root@parisc:~# ./a.out Floating point exception root@parisc:~# strace -f ./a.out execve("./a.out", ["./a.out"], 0xf9ac7034 /* 20 vars */) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 ... rt_sigaction(SIGFPE, {sa_handler=0x1110a, sa_mask=[], sa_flags=SA_RESTART|SA_SIGINFO}, NULL, 8) = 0 --- SIGFPE {si_signo=SIGFPE, si_code=FPE_FLTOVF, si_addr=0x1078f} --- --- SIGFPE {si_signo=SIGFPE, si_code=FPE_FLTOVF, si_addr=0xf8f21237} --- +++ killed by SIGFPE +++ Floating point exception
References
- ubuntu.com/security/CVE-2025-37991 (opens in a new tab)
- cve.org/CVERecord?id=CVE-2025-37991 (opens in a new tab)
- git.kernel.org/linus/de3629baf5a33af1919dec7136d643b0662e85ef (opens in a new tab)
- git.kernel.org/stable/c/6a098c51d18ec99485668da44294565c43dbc106 (opens in a new tab)
- git.kernel.org/stable/c/6c639af49e9e5615a8395981eaf5943fb40acd6f (opens in a new tab)
- git.kernel.org/stable/c/cf21e890f56b7d0038ddaf25224e4f4c69ecd143 (opens in a new tab)
- git.kernel.org/stable/c/de3629baf5a33af1919dec7136d643b0662e85ef (opens in a new tab)
- git.kernel.org/stable/c/df3592e493d7f29bae4ffde9a9325de50ddf962e (opens in a new tab)
- git.kernel.org/stable/c/ec4584495868bd465fe60a3f771915c0e7ce7951 (opens in a new tab)
- ubuntu.com/security/notices/USN-7649-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7650-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7654-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7654-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-7654-3 (opens in a new tab)
- ubuntu.com/security/notices/USN-7655-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7649-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-7654-4 (opens in a new tab)
- ubuntu.com/security/notices/USN-7665-1 (opens in a new tab)
- ubuntu.com/security/notices/USN-7665-2 (opens in a new tab)
- ubuntu.com/security/notices/USN-7654-5 (opens in a new tab)