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 <[email protected]> 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 <[email protected]> Reviewed-by: Clemens Backes <[email protected]> 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