Chrome · V8
CVE-2026-78956
Type Confusion in V8
Overview
Low
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Files Changed
src/wasm/baseline/liftoff-compiler.cc
Patch
From ef82f91627adf19af488e1190eeedfcb0d8278ff Mon Sep 17 00:00:00 2001
From: Thibaud Michaud <thibaudm@chromium.org>
Date: Tue, 30 Jun 2026 17:13:21 +0200
Subject: [PATCH] [wasm][debug] Reset OSR target on exception landing pad in Liftoff
When debugging, if we set a breakpoint in a caller function while paused
in a callee, the caller function is recompiled. If the callee then
throws an exception, we unwind to the caller's exception landing pad.
Any pending OSR target computed for the call's return continuation is
stale on the exception path. Clear it to ensure we don't consume it at
the next instruction.
Fixed: 520016142
Change-Id: I923c3d7d9c05ce596e5ea6e879f8ee4722f4eb85
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/8024909
Commit-Queue: Thibaud Michaud <thibaudm@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/main@{#108357}
---
diff --git a/src/wasm/baseline/liftoff-compiler.cc b/src/wasm/baseline/liftoff-compiler.cc
index 1b9ec0a..681efb6 100644
--- a/src/wasm/baseline/liftoff-compiler.cc
+++ b/src/wasm/baseline/liftoff-compiler.cc
@@ -6139,6 +6139,16 @@
CODE_COMMENT("-- landing pad --");
__ bind(handler.get());
__ ExceptionHandler();
+ if (V8_UNLIKELY(for_debugging_)) {
+ // Any pending OSR target was computed for the call's return continuation
+ // and is stale on the exception path; clear it so we keep executing the
+ // catch body in this code object.
+ // We might miss breakpoint updates by staying in the old code.
+ // TODO(thibaudm): Get the exception handler address in the new code and
+ // jump to it. Maybe by using a second OSR slot on top of kOSRTargetSlot,
+ // specifically for exceptional returns.
+ __ ResetOSRTarget();
+ }
__ PushException();
handlers_.push_back({std::move(handler), handler_offset});
Control* current_try =
Loading diff…
Original Bug Report
The reporter's bug is still restricted on the tracker. Chrome de-restricts security bugs ~30–90 days after the fix ships; a later run will backfill it here.
References
On This Page