vulgraph opened issue #13211:
Looking at
cranelift/codegen/src/isa/x64/lower.isle:4093onrelease-24.0.0, thefcopysignlowering rules for$F32and$F64haven't been updated yet:(rule (lower (has_type $F32 (fcopysign a @ (value_type $F32) b))) (let ((sign_bit Xmm (imm $F32 0x80000000))) (x64_orps (x64_andnps sign_bit a) (x64_andps sign_bit b)))) (rule (lower (has_type $F64 (fcopysign a @ (value_type $F64) b))) (let ((sign_bit Xmm (imm $F64 0x8000000000000000))) (x64_orpd (x64_andnpd sign_bit a) (x64_andpd sign_bit b))))Upstream commit
728fa071wrapsaandbin(let ((a Xmm a)) ...)so a 128-bit load isn't sunk into the operand position — that sink is what causes the OOB read described in the 40.0.3 release notes. Without it, anf64.loadfeedingf64.copysigncan read 16 bytes instead of 8 and segfault when signals-based traps are off.Is there an intent to backport
728fa071torelease-24.0.0, or is this branch out of security support? Happy to file a PR if it's the former.Best,
vulgraph
cfallin commented on issue #13211:
Thanks for filing this issue!
I'm actually somewhat perplexed looking at our internal discussions from this CVE: we agreed to patch v36, v40, v41, but somehow it never came up (and I will take primary responsibility for not realizing!) that we should have patched v24 as well, since it is still in LTS.
I'll do a backport and then do a version-bump release; thanks.
cfallin commented on issue #13211:
(More precisely speaking: I'll do a backport and version-bump once GitHub Status is no longer red, perhaps tomorrow.)
cfallin commented on issue #13211:
I put up #13213 and we'll release this along with another upcoming security release (which also has backports to v24) on Thursday.
vulgraph commented on issue #13211:
Thank you very much, @cfallin — really appreciate the quick turnaround and for opening #13213. I will keep an eye on Thursday's release. Cheers!
Last updated: May 03 2026 at 22:13 UTC