Low chrome Type Confusion 🔧 Commit mapped

Overview

Low
Severity
CVSS
No
Exploited ITW
Fixed
Fix Status
ImpactType confusion in V8
DescriptionType confusion in V8
ComponentV8
Bug ClassType Confusion
Tracker520016142
Fix commitef82f91627ad (v8/v8) +10/-0
CISA KEVNot listed
CreditedGoogle
Disclosed2026-08-25

Files Changed

  • src/wasm/baseline/liftoff-compiler.cc
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.