Cves
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Dung Do (@_piers2) of Calif.io
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43794 |
| Bugzilla | 317317 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 4a92fe2ccba1be5f… |
| Advisory | Apple Advisory |
Root Cause Analysis
A memory corruption issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebGPU/WebGPU/Queue.mmSource/WebGPU/WebGPU/Queue.swiftSource/WebGPU/WebGPU/RenderPipeline.mmSource/WebGPU/WebGPU/WebGPUExt.hSource/WebKit/GPUProcess/graphics/WebGPU/RemoteQueue.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: wwwlk
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43795 |
| Bugzilla | 313452 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | ce11a67281dafaa7… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientOutputs.cpp
Test Files
Tools/TestWebKitAPI/Tests/WebCore/CBORReaderTest.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Hossein Lotfi (@hosselot) of TrendAI Zero Day Initiative
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64715 |
| Bugzilla | 316347 |
| Component | JSC |
| Bug Class | UAF |
| Severity | medium |
| Commit | 1d5c10e2f9c8f313… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/JavaScriptCore/b3/B3PureCSE.cppSource/JavaScriptCore/b3/B3PureCSE.hSource/JavaScriptCore/b3/B3ReduceStrength.cpp
Test Files
Source/JavaScriptCore/b3/testb3.hSource/JavaScriptCore/b3/testb3_1.cppSource/JavaScriptCore/b3/testb3_6.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a maliciously crafted website may leak sensitive data
Researchers: Mohit Negi
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64778 |
| Bugzilla | 322124 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Shubham Chaskar, Tommy DeVoss from Braze Security Team (@thedawgyg)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64779 |
| Bugzilla | 321485 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A memory corruption vulnerability was addressed with improved locking.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: OpenAI Codex Security - Amy Burnett
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64780 |
| Bugzilla | 316918 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 9a17cd1100ad6cd4… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Files Changed
Source Files
Source/JavaScriptCore/b3/B3Procedure.cppSource/JavaScriptCore/b3/B3Procedure.hSource/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
Test Files
JSTests/wasm/stress/inline-wasm-simd-into-non-simd.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Thomas Guillem
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64781 |
| Bugzilla | 321484 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved input validation.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Seonwook Kim, Shubham Chaskar, lattice, Josef Korbel
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64782 |
| Bugzilla | 321480 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A memory corruption vulnerability was addressed with improved locking.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Janggoon Lee of Out of Bounds, OpenAI Codex Security - Amy Burnett
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64784 |
| Bugzilla | 317632 |
| Component | JSC |
| Bug Class | OOB |
| Severity | medium |
| Commit | 97df94ead028cddc… |
| Advisory | Apple Advisory |
Root Cause Analysis
UnlinkedMetadataTable::finalize() computed metadata buffer offsets using unchecked unsigned arithmetic. When compiling JavaScript functions with tens of millions of bytecode instructions, the cumulative offset calculation (numberOfEntries * metadataSize) overflows the 32-bit unsigned integer, wrapping to a small value. This causes a heap allocation that is far too small for the actual metadata, and all subsequent metadata reads/writes go out of bounds. The fix replaces raw unsigned arithmetic with CheckedUint32, detects the overflow before allocating, and propagates a failure boolean up through UnlinkedCodeBlockGenerator::finalize() to BytecodeGenerator::generate(), which then returns an OutOfMemory parser error instead of crashing.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process termination
Researchers: 杉山 壮太, Shubham Chaskar
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64787 |
| Bugzilla | 313703 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | cb83583e5f4d9553… |
| Advisory | Apple Advisory |
Root Cause Analysis
trustedTypeCompliantString executes arbitrary JavaScript via Trusted Types policy callbacks. The callers in Document::parseHTMLUnsafe, Document::write, and Document::execCommand passed a raw Document* from contextDocument() without protecting its lifetime. If the policy callback manipulates the DOM — adopting nodes, removing iframes, or triggering GC — the Document can be freed while trustedTypeCompliantString still holds and later dereferences the dangling pointer. The fix wraps contextDocument() with protect() to create a strong reference that keeps the Document alive for the entire duration of the trustedTypeCompliantString call.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: OpenAI Codex Security - Amy Burnett
| Attribute | Value |
|---|---|
| CVE | CVE-2026-65331 |
| Bugzilla | 317611 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 03a07e4200891271… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGIntegerRangeOptimizationPhase.cpp
Test Files
JSTests/stress/arith-abs-checked-input-range.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: OpenAI Codex Security - Amy Burnett
| Attribute | Value |
|---|---|
| CVE | CVE-2026-65332 |
| Bugzilla | 317450 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 8f229fb72961093d… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmFunctionParser.h
Test Files
JSTests/wasm/regress/try-catch-result-type.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: OpenAI Codex Security - Amy Burnett
| Attribute | Value |
|---|---|
| CVE | CVE-2026-65333 |
| Bugzilla | 317603 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 7d867192b7ab40a0… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/JavaScriptCore/b3/B3Procedure.hSource/WTF/wtf/BackwardsGraph.h
Test Files
JSTests/wasm/gc/backwards-graph-multi-backedge-licm.jsSource/JavaScriptCore/b3/testb3.hSource/JavaScriptCore/b3/testb3_1.cppSource/JavaScriptCore/b3/testb3_7.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: OpenAI Codex Security - Amy Burnett
| Attribute | Value |
|---|---|
| CVE | CVE-2026-65334 |
| Bugzilla | 316791 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 9f07374e9eb2398e… |
| Advisory | Apple Advisory |
Root Cause Analysis
A memory corruption issue was addressed with improved state management.
Files Changed
Source Files
Source/JavaScriptCore/b3/B3ReduceStrength.cppSource/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
Test Files
JSTests/wasm/stress/omg-reduce-strength-select-exception-stackmap.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: OpenAI Codex Security - Amy Burnett
| Attribute | Value |
|---|---|
| CVE | CVE-2026-65335 |
| Bugzilla | 316723 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | d74d692503fce0f3… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cppSource/JavaScriptCore/runtime/RegExp.cppSource/JavaScriptCore/runtime/RegExp.hSource/JavaScriptCore/runtime/RegExpCache.cpp
Test Files
JSTests/stress/new-regexp-untyped-soft-invalid-stale-captures.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Josef Korbel
| Attribute | Value |
|---|---|
| CVE | CVE-2026-65336 |
| Bugzilla | 317349 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 5b76326e8fc95ec2… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/JavaScriptCore/llint/InPlaceInterpreter64.asmSource/JavaScriptCore/wasm/WasmIPIntGenerator.cppSource/JavaScriptCore/wasm/WasmIPIntGenerator.h
Test Files
JSTests/wasm/stress/br-on-cast-fail-overlong-leb128.jsJSTests/wasm/stress/br-on-cast-overlong-leb128.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: OpenAI Codex Security - Amy Burnett
| Attribute | Value |
|---|---|
| CVE | CVE-2026-65337 |
| Bugzilla | 317142 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 7920db18a51b134b… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/JavaScriptCore/bytecode/RepatchInlines.hSource/JavaScriptCore/jit/JITOperations.cppSource/JavaScriptCore/llint/LLIntSlowPaths.cpp
Test Files
JSTests/stress/operation-polymorphic-call-host-call-ic-reset.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: OpenAI Codex Security - Amy Burnett
| Attribute | Value |
|---|---|
| CVE | CVE-2026-65338 |
| Bugzilla | 318348 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 26aa84fcd527016d… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cppSource/JavaScriptCore/dfg/DFGCombinedLiveness.cppSource/JavaScriptCore/dfg/DFGCombinedLiveness.hSource/JavaScriptCore/dfg/DFGForAllKills.hSource/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp
Test Files
JSTests/stress/arguments-elimination-inlined-load-varargs-preserves-recoveries.jsJSTests/stress/arguments-elimination-load-varargs-kills-promoted-recoveries.js
Patch Preview
diff --git a/JSTests/stress/arguments-elimination-inlined-load-varargs-preserves-recoveries.js b/JSTests/stress/arguments-elimination-inlined-load-varargs-preserves-recoveries.js
new file mode 100644
index 000000000000..6a9e21ffb290
--- /dev/null
+++ b/JSTests/stress/arguments-elimination-inlined-load-varargs-preserves-recoveries.js
@@ -0,0 +1,84 @@
+//@ runDefault("--thresholdForJITAfterWarmUp=10", "--thresholdForFTLOptimizeAfterWarmUp=1000", "--useConcurrentJIT=false", "--validateFTLOSRExitLiveness=true")
+
+"use strict";
+
+function shouldBe(actual, expected)
+{
+ if (actual !== expected)
+ throw new Error("bad value: " + actual + ", expected: " + expected);
+}
+
+function five(values1, values2)
+{
+ let result = null;
+ for (let i = 0; i < 5; ++i) {
+ function arg() { "use strict"; return arguments; }
+ const a = arg.apply(undefined, values1);
+ const b = arg.apply(undefined, values2);
+ try {
+ (3881)(b);
+ } catch (error) {
+ a.toString();
+ result = a;
+ }
+ }
+ return result;
+}
+
+function eight(values1, values2)
+{
+ let result = null;
+ for (let i = 0; i < 5; ++i) {
+ function arg() { "use strict"; return arguments; }
+ const a = arg.apply(undefined, values1);
+ const b = arg.apply(undefined, values2);
+ try {
+ (3881)(b);
+ } catch (error) {
+ a.toString();
+ result = a;
+ }
+ }
+ return result;
+}
+
+function filled(length, value)
+{
+ const result = [];
+ for (let i = 0; i < length; ++i)
+ result.push(value);
+ return result;
+}
+
+const fiveMarker = { marker: "five" };
+const eightMarker = { marker: "eight" };
+const seedArray = [{ marker: "seed" }, 1, 2, 3, 4, 5];
+
+const firstFive = filled(5, fiveMarker);
+const overwriteFive = filled(30, fiveMarker);
+overwriteFive[22] = 9;
+
+const firstEight = filled(8, eightMarker);
+const overwriteEight = filled(30, eightMarker);
+overwriteEight[20] = 9;
+
+for (let i = 0; i < testLoopCount; ++i) {
+ five(firstFive, overwriteFive);
+ eight(firstEight, overwriteEight);
+}
+
+const seedValues = filled(30, seedArray);
+seedValues[20] = 9;
+for (let i = 0; i < testLoopCount; ++i)
+ eight(firstEight, seedValues);
+
+const recoveredEight = eight(firstEight, seedValues);
+shouldBe(recoveredEight.length, firstEight.length);
+for (let i = 0; i < firstEight.length; ++i)
+ shouldBe(recoveredEight[i], eightMarker);
+
+const recoveredFive = five(firstFive, overwriteFive);
+shouldBe(recoveredFive.length, firstFive.length);
+for (let i = 0; i < firstFive.length; ++i)
+ shouldBe(recoveredFive[i], fiveMarker);
+shouldBe(recoveredFive[5], undefined);
diff --git a/JSTests/stress/arguments-elimination-load-varargs-kills-promoted-recoveries.js b/JSTests/stress/arguments-elimination-load-varargs-kills-promoted-recoveries.js
new file mode 100644
index 000000000000..aa818cb6d313
--- /dev/null
+++ b/JSTests/stress/arguments-elimination-load-varargs-kills-promoted-recoveries.js
@@ -0,0 +1,88 @@
+//@ runDefault("--thresholdForJITAfterWarmUp=10", "--thresholdForFTLOptimizeAfterWarmUp=1000", "--useConcurrentJIT=false")
+
+"use strict";
+
+function shouldBe(actual, expected)
+{
+ if (actual !== expected)
+ throw new Error("bad value: " + actual + ", expected: " + expected);
+}
+noInline(shouldBe);
+
+function five(values1, values2)
+{
+ let result = null;
+ for (let i = 0; i < 5; ++i) {
+ function arg() { "use strict"; return arguments; }
+ const a = arg.apply(undefined, values1);
+ const b = arg.apply(undefined, values2);
+ try {
+ (3881)(b);
+ } catch (error) {
+ a.toString();
+ result = a;
+ }
+ }
+ return result;
+}
+noInline(five);
+
+function eight(values1, values2)
+{
+ let result = null;
+ for (let i = 0; i < 5; ++i) {
+ function arg() { "use strict"; return arguments; }
+ const a = arg.apply(undefined, values1);
+ const b = arg.apply(undefined, values2);
+ try {
+ (3881)(b);
+ } catch (error) {
+ a.toString();
+ result = a;
+ }
+ }
+ return result;
+}
+noInline(eight);
+
+function filled(length, value)
+{
+ const result = [];
+ for (let i = 0; i < length; ++i)
+ result.push(value);
+ return result;
+}
+noInline(filled);
+
+const fiveMarker = { marker: "five" };
+const eightMarker = { marker: "eight" };
+const seedArray = [{ marker: "seed" }, 1, 2, 3, 4, 5];
+
+const firstFive = filled(5, fiveMarker);
+const overwriteFive = filled(30, fiveMarker);
+overwriteFive[22] = 9;
+
+const firstEight = filled(8, eightMarker);
+const overwriteEight = filled(30, eightMarker);
+overwriteEight[20] = 9;
+
+for (let i = 0; i < testLoopCount; ++i) {
+ five(firstFive, overwriteFive);
+ eight(firstEight, overwriteEight);
+}
+
+const seedValues = filled(30, seedArray);
+seedValues[20] = 9;
+for (let i = 0; i < testLoopCount; ++i)
+ eight(firstEight, seedValues);
+
+const recoveredEight = eight(firstEight, seedValues);
+shouldBe(recoveredEight.length, firstEight.length);
+for (let i = 0; i < firstEight.length; ++i)
+ shouldBe(recoveredEight[i], eightMarker);
+
+const recoveredFive = five(firstFive, overwriteFive);
+shouldBe(recoveredFive.length, firstFive.length);
+for (let i = 0; i < firstFive.length; ++i)
+ shouldBe(recoveredFive[i], fiveMarker);
+shouldBe(recoveredFive[5], undefined);
diff --git a/Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cpp b/Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cpp
index b90a0b9649cf..52567cea948e 100644
--- a/Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cpp
+++ b/Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cpp
@@ -33,6 +33,7 @@
#include "DFGArgumentsUtilities.h"
#include <wtf/IndexMap.h>
#include "DFGClobberize.h"
+#include "DFGCombinedLiveness.h"
#include "DFGForAllKills.h"
#include "DFGGraph.h"
#include "DFGInsertionSet.h"
@@ -722,7 +723,16 @@ class ArgumentsEliminationPhase : public Phase {
}
if (clobberStack) {
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Claudio Bozzato and Francesco Benvenuto of Cisco Talos, Josef Korbel (Citadelo)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-65340 |
| Bugzilla | 316996 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 30b9a27b47e842c4… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/JavaScriptCore/runtime/RegExpMatchesArray.hSource/JavaScriptCore/yarr/YarrJIT.cpp
Test Files
JSTests/stress/yarr-jit-non-bmp-backtrack-index-overflow.jsJSTests/stress/yarr-jit-non-bmp-backtrack-index-underflow.js
Patch Preview
diff --git a/JSTests/stress/yarr-jit-non-bmp-backtrack-index-overflow.js b/JSTests/stress/yarr-jit-non-bmp-backtrack-index-overflow.js
new file mode 100644
index 000000000000..8657a02fb82c
--- /dev/null
+++ b/JSTests/stress/yarr-jit-non-bmp-backtrack-index-overflow.js
@@ -0,0 +1,12 @@
+const re = /d\0e?|\u{10000}c/u;
+const subj = "\u{10000}d";
+const m = re.exec(subj);
+
+if (m !== null) {
+ throw new Error(
+ "expected null, got match=" + JSON.stringify(m[0]) +
+ " at index=" + m.index +
+ " (m.index + m[0].length = " + (m.index + m[0].length) +
+ " > subj.length = " + subj.length + ")"
+ );
+}
diff --git a/JSTests/stress/yarr-jit-non-bmp-backtrack-index-underflow.js b/JSTests/stress/yarr-jit-non-bmp-backtrack-index-underflow.js
new file mode 100644
index 000000000000..52fb0bbf4021
--- /dev/null
+++ b/JSTests/stress/yarr-jit-non-bmp-backtrack-index-underflow.js
@@ -0,0 +1,5 @@
+const re = /(?!\u{10000})a*|\u{10000}b/u;
+const subj = "\u{10000}cc";
+const m = re.exec(subj);
+if (m[0].length > subj.length)
+ throw new Error("m[0].length (" + m[0].length + ") > subj.length (" + subj.length + ")");
diff --git a/Source/JavaScriptCore/runtime/RegExpMatchesArray.h b/Source/JavaScriptCore/runtime/RegExpMatchesArray.h
index 4d5d2304e1d1..4d46a7f017f8 100644
--- a/Source/JavaScriptCore/runtime/RegExpMatchesArray.h
+++ b/Source/JavaScriptCore/runtime/RegExpMatchesArray.h
@@ -76,7 +76,8 @@ ALWAYS_INLINE JSArray* createRegExpMatchesArray(
result.start = position;
result.end = subpatternResults[1];
-
+ RELEASE_ASSERT(result.end >= result.start);
+
JSArray* array;
JSArray* indicesArray = nullptr;
diff --git a/Source/JavaScriptCore/yarr/YarrJIT.cpp b/Source/JavaScriptCore/yarr/YarrJIT.cpp
index d5dc7005cc4d..90ead5391420 100644
--- a/Source/JavaScriptCore/yarr/YarrJIT.cpp
+++ b/Source/JavaScriptCore/yarr/YarrJIT.cpp
@@ -3925,9 +3925,19 @@ class YarrGenerator final : public YarrJITInfo {
// already correctly incremented, if more than one then decrement as appropriate.
unsigned delta = alternative->m_minimumSize - beginOp->m_alternative->m_minimumSize;
ASSERT(delta);
+ bool advancedIndexForNonBMP = false;
+#if ENABLE(YARR_JIT_UNICODE_EXPRESSIONS) && ENABLE(YARR_JIT_UNICODE_CAN_INCREMENT_INDEX_FOR_NON_BMP)
+ if (m_useFirstNonBMPCharacterOptimization) {
+ m_jit.add32(m_regs.firstCharacterAdditionalReadSize, m_regs.index);
+ advancedIndexForNonBMP = true;
+ }
+#endif
if (delta != 1)
m_jit.sub32(MacroAssembler::Imm32(delta - 1), m_regs.index);
- m_jit.jump(beginOp->m_reentry);
+ if (advancedIndexForNonBMP)
+ checkInput().linkTo(beginOp->m_reentry, &m_jit);
+ else
+ m_jit.jump(beginOp->m_reentry);
} else {
// If the first alternative has minimum size 0xFFFFFFFFu, then there cannot
// be sufficent input available to handle this, so just fall through.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Henock Habte
| Attribute | Value |
|---|---|
| CVE | CVE-2026-65341 |
| Bugzilla | 318405 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 34249048d66d342f… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/svg/animation/SVGSMILElement.cpp
Test Files
LayoutTests/svg/animations/smil-seek-huge-repeat-count-crash-expected.txtLayoutTests/svg/animations/smil-seek-huge-repeat-count-crash.html
Patch Preview
diff --git a/LayoutTests/svg/animations/smil-seek-huge-repeat-count-crash-expected.txt b/LayoutTests/svg/animations/smil-seek-huge-repeat-count-crash-expected.txt
new file mode 100644
index 000000000000..cd68e3612acf
--- /dev/null
+++ b/LayoutTests/svg/animations/smil-seek-huge-repeat-count-crash-expected.txt
@@ -0,0 +1,3 @@
+Passes if it does not crash.
+
+
diff --git a/LayoutTests/svg/animations/smil-seek-huge-repeat-count-crash.html b/LayoutTests/svg/animations/smil-seek-huge-repeat-count-crash.html
new file mode 100644
index 000000000000..c30fa119a3e8
--- /dev/null
+++ b/LayoutTests/svg/animations/smil-seek-huge-repeat-count-crash.html
@@ -0,0 +1,14 @@
+<body>
+ <p>Passes if it does not crash.</p>
+ <svg id="svg">
+ <rect width="100" height="100" fill="green">
+ <animate attributeName="x" from="0" to="10" dur="0.0001s" repeatCount="indefinite"/>
+ </rect>
+ </svg>
+ <script>
+ if (window.testRunner)
+ testRunner.dumpAsText();
+
+ svg.setCurrentTime(400000);
+ </script>
+</body>
diff --git a/Source/WebCore/svg/animation/SVGSMILElement.cpp b/Source/WebCore/svg/animation/SVGSMILElement.cpp
index 8bd88254df52..8a9d6c1670b1 100644
--- a/Source/WebCore/svg/animation/SVGSMILElement.cpp
+++ b/Source/WebCore/svg/animation/SVGSMILElement.cpp
@@ -1049,12 +1049,13 @@ float SVGSMILElement::calculateAnimationPercentAndRepeat(SMILTime elapsed, unsig
SMILTime activeTime = elapsed - m_intervalBegin;
SMILTime repeatingDuration = this->repeatingDuration();
+ // Clamp the page-controlled repeat count to prevent overflow.
if ((elapsed >= m_intervalEnd && !repeatingDuration.isIndefinite()) || activeTime > repeatingDuration) {
- repeat = static_cast<unsigned>(repeatingDuration.value() / simpleDuration.value());
- if (!fmod(repeatingDuration.value(), simpleDuration.value()))
+ repeat = clampTo<unsigned>(repeatingDuration.value() / simpleDuration.value());
+ if (repeat && !fmod(repeatingDuration.value(), simpleDuration.value()))
--repeat;
} else
- repeat = static_cast<unsigned>(activeTime.value() / simpleDuration.value());
+ repeat = clampTo<unsigned>(activeTime.value() / simpleDuration.value());
double percent;
if (elapsed >= m_intervalEnd || activeTime > repeatingDuration) {
@@ -1187,16 +1188,9 @@ bool SVGSMILElement::progress(SMILTime elapsed, SVGSMILElement& firstAnimation,
if (m_activeState == Inactive || m_activeState == Frozen)
smilEventSender().dispatchEventSoon(*this, eventNames().endEventEvent);
- if (repeat) {
- // We intentionally dispatch repeat - 1 events here because the first repeat
- // event (for the initial loop) is sent elsewhere during continuous animation run.
- // If repeat == 1, no events are dispatched here.
- for (unsigned i = 0; i < repeat - 1; ++i)
- smilEventSender().dispatchEventSoon(*this, eventNames().repeatEventEvent);
-
- if (m_activeState == Inactive)
- smilEventSender().dispatchEventSoon(*this, eventNames().repeatEventEvent);
- }
+ // Coalesce the skipped repeat iterations into a single event instead of one per interval.
+ if (repeat > 1 || (repeat && m_activeState == Inactive))
+ smilEventSender().dispatchEventSoon(*this, eventNames().repeatEventEvent);
}
m_nextProgressTime = calculateNextProgressTime(elapsed);
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Niels Hofmans
| Attribute | Value |
|---|---|
| CVE | CVE-2026-65351 |
| Bugzilla | 321517 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a website may lead to an app denial-of-service
Researchers: Heiko Kiesel of SEEMOO, TU Darmstadt
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43804 |
| Bugzilla | 316816 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 2057f457fb75d4e5… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/WebCore/loader/FrameLoader.cpp
Test Files
Tools/TestWebKitAPI/Tests/WebKitCocoa/VerifyUserGestureFromUIProcess.mm
Overview
Advisory: Apple Security Advisory
Impact:
Description: An app may be able to read files outside of its sandbox
Researchers: Brian Carpenter
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43821 |
| Bugzilla | 314867 |
| Component | WebKit |
| Bug Class | SandboxEscape |
| Severity | medium |
| Commit | 74d0c628ff2d82e9… |
| Advisory | Apple Advisory |
Root Cause Analysis
An access issue was addressed with improved access restrictions.
Files Changed
Source Files
Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Websites may know if the user has visited a given link
Researchers: Kwak Kiyong, Song Nuri
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64713 |
| Bugzilla | 316827 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 52cacff4c9e7d9eb… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed with improved checks.
Files Changed
Source Files
Source/WebCore/page/LargestContentfulPaintData.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: OGINOME Tomohito, an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64718 |
| Bugzilla | 313935 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | 95f9f59bb141325d… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebCore/platform/graphics/cg/PathCG.cpp
Test Files
LayoutTests/fast/canvas/offscreen-worker-unsafe-isPointInStroke-call-expected.txtLayoutTests/fast/canvas/offscreen-worker-unsafe-isPointInStroke-call.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Shaheen Fazim
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64719 |
| Bugzilla | 319404 |
| Component | WebKit |
| Bug Class | OOB |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
An out-of-bounds access issue was addressed with improved bounds checking.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Maliciously crafted web content may violate iframe sandboxing policy
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64728 |
| Bugzilla | 313220 |
| Component | WebCore |
| Bug Class | SandboxEscape |
| Severity | medium |
| Commit | c52bbb5187e1602b… |
| Advisory | Apple Advisory |
Root Cause Analysis
A permissions issue was addressed with improved validation.
Files Changed
Source Files
Source/WebCore/loader/FrameLoader.cpp
Test Files
LayoutTests/http/tests/cookies/same-site/fetch-in-srcdoc-iframe-inside-cross-origin-iframe-expected.txtLayoutTests/http/tests/cookies/same-site/fetch-in-srcdoc-iframe-inside-cross-origin-iframe.htmlLayoutTests/http/tests/cookies/same-site/img-from-srcdoc-iframe-inside-cross-origin-iframe-expected.txtLayoutTests/http/tests/cookies/same-site/img-from-srcdoc-iframe-inside-cross-origin-iframe.htmlLayoutTests/http/tests/cookies/same-site/resources/record-image-cookies.pyLayoutTests/http/tests/cookies/same-site/resources/srcdoc-creator-img-inside-cross-origin-iframe.htmlLayoutTests/http/tests/cookies/same-site/resources/srcdoc-creator-inside-cross-origin-iframe.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a website that frames malicious content may lead to UI spoofing
Researchers: Kagami Rosylight of Mozilla
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64730 |
| Bugzilla | 311660 |
| Component | WTF |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 1ab2bb4ff37e91e0… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved UI.
Files Changed
Source Files
Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Milad Nasr and Nicholas Carlini with Claude, Anthropic
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64757 |
| Bugzilla | 315082 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 72272dcc4feb8412… |
| Advisory | Apple Advisory |
Root Cause Analysis
A memory corruption issue was addressed with improved state management.
Files Changed
Source Files
Source/JavaScriptCore/runtime/CachedTypes.cppSource/JavaScriptCore/runtime/ScopedArgumentsTable.cppSource/JavaScriptCore/runtime/ScopedArgumentsTable.hSource/WTF/wtf/Vector.h
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: 杉山 壮太, lattice, Behzad Najjarpour Jabbari (@G4ru), Junyeong Lee, Mooth.ai, OGINOME Tomohito, Using GLM From Z.AI, Gia Bui (@yabeow) from Calif.io
| Attribute | Value |
|---|---|
| CVE | CVE-2026-64783 |
| Bugzilla | 313521 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | be08720593705c04… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28979 |
| Bugzilla | 317324 |
| Component | WebKit |
| Bug Class | OOB |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
An out-of-bounds access issue was addressed with improved bounds checking.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Utkarsh Pal, Ignacio Sanmillan (@ulexec)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-39872 |
| Bugzilla | 313528 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 8912cf5b00c44e5c… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/Modules/webaudio/WaveShaperDSPKernel.cppSource/WebCore/Modules/webaudio/WaveShaperNode.cppSource/WebCore/Modules/webaudio/WaveShaperNode.hSource/WebCore/Modules/webaudio/WaveShaperProcessor.cppSource/WebCore/Modules/webaudio/WaveShaperProcessor.h
Test Files
LayoutTests/webaudio/WaveShaper/waveshaper-curve-getter-during-rendering-crash-expected.txtLayoutTests/webaudio/WaveShaper/waveshaper-curve-getter-during-rendering-crash.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Using GLM From Z.AI, Tristan Madani (@TristanInSec) from Talence Security, stratan (@5tratan) of Almamater Technologies, Soyeon Park, Amy Burnett, Khai Tran, sherkito, Kota Toda, HexRabbit (@h3xr4bb1t) and NiNi (@terrynini38514) of DEVCORE Research Team, Brian Carpenter
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43663 |
| Bugzilla | 312781 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 13bfbf94f49eab45… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Tommy DeVoss from Braze Security Team (@thedawgyg), Mateusz Krzywicki (iVerify.io), dr3dd
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43676 |
| Bugzilla | 317231 |
| Component | WebKit |
| Bug Class | OOB |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
An out-of-bounds access issue was addressed with improved bounds checking.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Tommy DeVoss from Braze Security Team (@thedawgyg)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43699 |
| Bugzilla | 317227 |
| Component | WebKit |
| Bug Class | UAF |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may disclose sensitive user information
Researchers: Vitaly Simonovich, Muhamad Syaiful, Christian Meurer Xavier
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43700 |
| Bugzilla | 315368 |
| Component | WebCore |
| Bug Class | CrossOrigin |
| Severity | medium |
| Commit | 67b563b85f480c70… |
| Advisory | Apple Advisory |
Root Cause Analysis
A cross-origin issue was addressed with improved tracking of security origins.
Files Changed
Source Files
Source/WebCore/Modules/WebGPU/GPUDevice.cpp
Test Files
LayoutTests/fast/webgpu/regression/repro_315368-expected.txtLayoutTests/fast/webgpu/regression/repro_315368.htmlLayoutTests/fast/webgpu/regression/repro_315368b-expected.txtLayoutTests/fast/webgpu/regression/repro_315368b.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may be able to process restricted web content outside the sandbox
Researchers: Aaron Grattafiori - NVIDIA AI Red Team
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43701 |
| Bugzilla | 315004 |
| Component | WebCore |
| Bug Class | SandboxEscape |
| Severity | medium |
| Commit | f23ffb5a845006c8… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Files Changed
Source Files
Source/WebCore/loader/DocumentLoader.cppSource/WebKit/UIProcess/API/APINavigation.hSource/WebKit/UIProcess/WebPageProxy.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious web extension may be able to cause an unexpected process crash
Researchers: dr3dd
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43704 |
| Bugzilla | 314642 |
| Component | WebKit |
| Bug Class | UAF |
| Severity | medium |
| Commit | 1759ab219c63940b… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsExtensionPanelCocoa.mmSource/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPortCocoa.mm
Test Files
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebExtensionAPIRuntime.mm
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: dr3dd
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43705 |
| Bugzilla | 314528 |
| Component | WebCore |
| Bug Class | TypeConfusion |
| Severity | medium |
| Commit | 8fd92b1021d310b2… |
| Advisory | Apple Advisory |
Root Cause Analysis
A type confusion issue was addressed with improved checks.
Files Changed
Source Files
Source/WebCore/Modules/streams/TransformStream.cpp
Test Files
LayoutTests/streams/transform-stream-poisoned-iterator-crash-expected.txtLayoutTests/streams/transform-stream-poisoned-iterator-crash.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: stratan (@5tratan) of Almamater Technologies, OpenAI Codex Security - Amy Burnett
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43707 |
| Bugzilla | 315951 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A memory corruption issue was addressed with improved memory handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may exfiltrate data cross-origin
Researchers: Behzad Najjarpour Jabbari (@G4ru)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43708 |
| Bugzilla | 315306 |
| Component | WebKit |
| Bug Class | CrossOrigin |
| Severity | medium |
| Commit | 971435fdd3868e7f… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved input validation.
Files Changed
Source Files
Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
Test Files
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKHTTPCookieStore.mm
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43709 |
| Bugzilla | 314398 |
| Component | WebKit |
| Bug Class | UAF |
| Severity | medium |
| Commit | 9d2cc8c9895d51eb… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/QueryMtl.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/QueryMtl.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_occlusion_query_pool.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_occlusion_query_pool.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_render_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_render_utils.mm
Test Files
LayoutTests/platform/mac-wk2/TestExpectationsSource/ThirdParty/ANGLE/src/tests/gl_tests/OcclusionQueriesTest.cpp
Patch Preview
diff --git a/LayoutTests/platform/mac-wk2/TestExpectations b/LayoutTests/platform/mac-wk2/TestExpectations
index 5661950f388b..5066d4b54544 100644
--- a/LayoutTests/platform/mac-wk2/TestExpectations
+++ b/LayoutTests/platform/mac-wk2/TestExpectations
@@ -2309,6 +2309,8 @@ webkit.org/b/315877 [ Sequoia Debug x86_64 ] webgl/2.0.y/conformance2/textures/m
webkit.org/b/315877 [ Sequoia Debug x86_64 ] webgl/2.0.y/conformance2/textures/webgl_canvas/tex-3d-r11f_g11f_b10f-rgb-float.html [ Pass Timeout ]
webkit.org/b/315877 [ Sequoia Debug x86_64 ] webgl/2.0.y/conformance2/textures/image_bitmap_from_video/tex-2d-rgba32f-rgba-float.html [ Pass Failure ]
+webkit.org/b/318751 [ Debug arm64 ] webgl/2.0.y/conformance2/textures/misc/tex-unpack-params.html [ Pass Failure ]
+
webkit.org/b/315881 [ Sequoia Release x86_64 ] fast/attachment/cocoa/wide-attachment-class.html [ Pass ImageOnlyFailure ]
webkit.org/b/315881 [ Sequoia Release x86_64 ] fast/attachment/cocoa/wide-attachment-default-icon.html [ Pass ImageOnlyFailure ]
webkit.org/b/315881 [ Sequoia Release x86_64 ] fast/attachment/cocoa/wide-attachment-folder-icon.html [ Pass ImageOnlyFailure ]
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.h b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.h
index 41553c65283a..a85c8ecffa9f 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.h
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.h
@@ -31,6 +31,7 @@ namespace rx
{
class DisplayMtl;
class FramebufferMtl;
+class QueryMtl;
class VertexArrayMtl;
class ProgramMtl;
class ProgramExecutableMtl;
@@ -301,20 +302,22 @@ class ContextMtl : public ContextImpl, public mtl::Context
bool renderPassChanged);
void onBackbufferResized(const gl::Context *context, WindowSurfaceMtl *backbuffer);
- // Invoke by QueryMtl
- angle::Result onOcclusionQueryBegin(const gl::Context *context, QueryMtl *query);
- void onOcclusionQueryEnd(const gl::Context *context, QueryMtl *query);
- void onOcclusionQueryDestroy(const gl::Context *context, QueryMtl *query);
+ angle::Result onOcclusionQueryBegin(QueryMtl &query);
+ void onOcclusionQueryEnd();
+ void onOcclusionQueryDestroy(QueryMtl &query);
// Useful for temporarily pause then restart occlusion query during clear/blit with draw.
- bool hasActiveOcclusionQuery() const { return mOcclusionQuery; }
+ bool isOcclusionQueryEnabledInRenderPass() const
+ {
+ return mOcclusionQueryIsEnabledInRenderPass;
+ }
// Disable the occlusion query in the current render pass.
// The render pass must already started.
- void disableActiveOcclusionQueryInRenderPass();
+ void disableOcclusionQueryInRenderPass();
// Re-enable the occlusion query in the current render pass.
// The render pass must already started.
// NOTE: the old query's result will be retained and combined with the new result.
- angle::Result restartActiveOcclusionQueryInRenderPass();
+ angle::Result enableOcclusionQueryInRenderPass();
// Invoke by TransformFeedbackMtl
void onTransformFeedbackActive(const gl::Context *context, TransformFeedbackMtl *xfb);
@@ -536,8 +539,6 @@ class ContextMtl : public ContextImpl, public mtl::Context
bool xfbPass,
bool *pipelineDescChanged);
- angle::Result startOcclusionQueryInRenderPass(QueryMtl *query, bool clearOldValue);
-
angle::Result checkCommandBufferError();
// Dirty bits.
@@ -607,7 +608,6 @@ class ContextMtl : public ContextImpl, public mtl::Context
FramebufferMtl *mDrawFramebuffer = nullptr;
VertexArrayMtl *mVertexArray = nullptr;
ProgramExecutableMtl *mExecutable = nullptr;
- QueryMtl *mOcclusionQuery = nullptr;
using DirtyBits = angle::BitSet<DIRTY_BIT_MAX>;
@@ -658,6 +658,9 @@ class ContextMtl : public ContextImpl, public mtl::Context
id<MTLTexture> mRasterizationRateMapTexture;
mtl::ContextDevice mContextDevice;
+
+ mtl::BufferRef mOcclusionQueryResultBuffer;
+ bool mOcclusionQueryIsEnabledInRenderPass{false};
};
} // namespace rx
diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm
index 644b213beee9..8703f6c2d578 100644
--- a/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm
+++ b/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm
@@ -1823,7 +1823,7 @@ GLint GetOwnershipIdentity(const egl::AttributeMap &attribs)
mRenderEncoder.setStoreAction(MTLStoreActionStore);
}
- disableActiveOcclusionQueryInRenderPass();
+ disableOcclusionQueryInRenderPass();
mOcclusionQueryPool.prepareRenderPassVisibilityPoolBuffer(this);
@@ -2281,84 +2281,67 @@ GLint GetOwnershipIdentity(const egl::AttributeMap &attribs)
onDrawFrameBufferChangedState(context, framebuffer, true);
}
-angle::Result ContextMtl::onOcclusionQueryBegin(const gl::Context *context, QueryMtl *query)
+angle::Result ContextMtl::onOcclusionQueryBegin(QueryMtl &query)
{
- ASSERT(mOcclusionQuery == nullptr);
- mOcclusionQuery = query;
-
+ ASSERT(!mOcclusionQueryResultBuffer); // Frontend guarantees none active at the time.
+ const mtl::BufferRef &resultBuffer = query.getVisibilityResultBuffer();
+ bool isEnabledInRenderPass;
if (mRenderEncoder.valid())
{
- // if render pass has started, start the query in the encoder
- return startOcclusionQueryInRenderPass(query, true);
+ size_t resultOffset;
+ ANGLE_TRY(mOcclusionQueryPool.beginQuery(this, resultBuffer, &resultOffset));
+ mRenderEncoder.setVisibilityResultMode(MTLVisibilityResultModeBoolean, resultOffset);
+ // Result is available after flush.
+ mCmdBuffer.setWriteDependency(resultBuffer, /*isRenderCommand=*/true);
+ isEnabledInRenderPass = true;
}
else
{
- query->resetVisibilityResult(this);
+ // Reset the occlusion query result stored in buffer to zero.
+ // Later draws will use continueQuery() to enable the visibility buffer writes.
+ auto blitEncoder = getBlitCommandEncoder();
+ blitEncoder->fillBuffer(resultBuffer, NSMakeRange(0, mtl::kOcclusionQueryResultSize), 0);
+ resultBuffer->syncContent(this, blitEncoder);
+ isEnabledInRenderPass = false;
}
-
+ mOcclusionQueryResultBuffer = resultBuffer;
+ mOcclusionQueryIsEnabledInRenderPass = isEnabledInRenderPass;
return angle::Result::Continue;
}
-void ContextMtl::onOcclusionQueryEnd(const gl::Context *context, QueryMtl *query)
-{
- ASSERT(mOcclusionQuery == query);
-
- if (mRenderEncoder.valid())
- {
- // if render pass has started, end the query in the encoder
- disableActiveOcclusionQueryInRenderPass();
- }
- mOcclusionQuery = nullptr;
-}
-void ContextMtl::onOcclusionQueryDestroy(const gl::Context *context, QueryMtl *query)
+void ContextMtl::onOcclusionQueryEnd()
{
- if (query->getAllocatedVisibilityOffsets().empty())
- {
- return;
- }
- if (mOcclusionQuery == query)
- {
- onOcclusionQueryEnd(context, query);
- }
- mOcclusionQueryPool.deallocateQueryOffset(this, query);
+ ASSERT(mOcclusionQueryResultBuffer); // Frontend guarantees one active at the time.
+ disableOcclusionQueryInRenderPass();
+ mOcclusionQueryResultBuffer = nullptr;
}
-void ContextMtl::disableActiveOcclusionQueryInRenderPass()
+void ContextMtl::onOcclusionQueryDestroy(QueryMtl &query)
{
- if (!mOcclusionQuery || mOcclusionQuery->getAllocatedVisibilityOffsets().empty())
- {
- return;
- }
-
- ASSERT(mRenderEncoder.valid());
- mRenderEncoder.setVisibilityResultMode(MTLVisibilityResultModeDisabled,
- mOcclusionQuery->getAllocatedVisibilityOffsets().back());
+ // On normal operation frontend guaraantees that end is called before destroy.
+ // On context destruction, active query is destroyed without end.
+ // Discard is valid for both.
+ mOcclusionQueryPool.discardQuery(query.getVisibilityResultBuffer());
}
-angle::Result ContextMtl::restartActiveOcclusionQueryInRenderPass()
+void ContextMtl::disableOcclusionQueryInRenderPass()
{
- if (!mOcclusionQuery || mOcclusionQuery->getAllocatedVisibilityOffsets().empty())
+ if (mOcclusionQueryResultBuffer && mOcclusionQueryIsEnabledInRenderPass)
{
- return angle::Result::Continue;
+ ASSERT(mRenderEncoder.valid());
+ mRenderEncoder.setVisibilityResultMode(MTLVisibilityResultModeDisabled, 0);
+ mOcclusionQueryIsEnabledInRenderPass = false;
}
-
- return startOcclusionQueryInRenderPass(mOcclusionQuery, false);
}
-angle::Result ContextMtl::startOcclusionQueryInRenderPass(QueryMtl *query, bool clearOldValue)
+angle::Result ContextMtl::enableOcclusionQueryInRenderPass()
{
ASSERT(mRenderEncoder.valid());
-
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Kwak Kiyong, Song nuri, Tristan Madani (@TristanInSec) from Talence Security
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43712 |
| Bugzilla | 314235 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | e96472d9cab94158… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmGlobal.hSource/JavaScriptCore/wasm/WasmTable.cppSource/JavaScriptCore/wasm/WasmTable.h
Test Files
JSTests/wasm/gc/transitive-type-retention-global.jsJSTests/wasm/gc/transitive-type-retention-table.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a website may leak sensitive data
Researchers: Jody Ritonga
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43713 |
| Bugzilla | 314806 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 73645abad282e490… |
| Advisory | Apple Advisory |
Root Cause Analysis
A permissions issue was addressed with additional restrictions.
Files Changed
Source Files
Source/WebCore/Modules/async-clipboard/Clipboard.cpp
Test Files
LayoutTests/editing/async-clipboard/clipboard-change-data-while-getting-type.htmlLayoutTests/editing/async-clipboard/clipboard-get-type-with-old-items.htmlLayoutTests/editing/async-clipboard/resources/async-clipboard-helpers.jsLayoutTests/http/tests/security/clipboard/clipboard-access-in-cross-origin-iframe-denied-expected.txtLayoutTests/http/tests/security/clipboard/clipboard-access-in-cross-origin-iframe-denied.htmlLayoutTests/http/tests/security/clipboard/resources/clipboard-access-from-iframe.htmlLayoutTests/imported/w3c/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https-expected.txtLayoutTests/imported/w3c/web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https.htmlLayoutTests/imported/w3c/web-platform-tests/clipboard-apis/resources/user-activation.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Milad Nasr and Nicholas Carlini with Claude, Anthropic
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43715 |
| Bugzilla | 313577 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | 5aedb82710ba578f… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebCore/css/CSSFontFace.cpp
Test Files
LayoutTests/fonts/font-face-load-crash-expected.txtLayoutTests/fonts/font-face-load-crash.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Maher Azzouzi, Tuan and Duc from Calif.io, OpenAI Codex Security - Amy Burnett, Evan Lambert
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43716 |
| Bugzilla | 313473 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | a012babd4f1611a4… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/runtime/ArrayBuffer.cppSource/JavaScriptCore/runtime/ArrayBuffer.hSource/JavaScriptCore/runtime/JSArrayBuffer.cppSource/JavaScriptCore/runtime/JSArrayBuffer.hSource/JavaScriptCore/runtime/JSArrayBufferPrototype.cppSource/JavaScriptCore/wasm/WasmMemory.hSource/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp
Test Files
JSTests/wasm/stress/wasm-resizable-buffer-resize-after-gc.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Nan Wang (@eternalsakura13)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43717 |
| Bugzilla | 313351 |
| Component | WebKit |
| Bug Class | UAF |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Nan Wang (@eternalsakura13)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43718 |
| Bugzilla | 313350 |
| Component | WebKit |
| Bug Class | IntegerOverflow |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A stack overflow was addressed with improved input validation.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Josef Korbel, Gia Bui (@yabeow) from Calif.io
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43720 |
| Bugzilla | 313175 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | 040ef6e21ffac03b… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebCore/html/HTMLCanvasElement.cppSource/WebCore/html/OffscreenCanvas.cpp
Test Files
LayoutTests/fast/canvas/canvas-getContext-reentrant-expected.txtLayoutTests/fast/canvas/canvas-getContext-reentrant.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may be able to silently hijack clipboard data
Researchers: Idan Masas
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43721 |
| Bugzilla | 313478 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | d8576e6cceeb0595… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/WebCore/dom/DocumentStorageAccess.cppSource/WebCore/dom/DocumentStorageAccess.hSource/WebCore/page/ChromeClient.hSource/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cppSource/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.hSource/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cppSource/WebKit/NetworkProcess/NetworkConnectionToWebProcess.hSource/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.inSource/WebKit/Scripts/webkit/messages.pySource/WebKit/Shared/WebCoreArgumentCoders.serialization.inSource/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cppSource/WebKit/WebProcess/WebCoreSupport/WebChromeClient.hSource/WebKit/WebProcess/WebPage/WebPage.cppSource/WebKit/WebProcess/WebPage/WebPage.h
Test Files
LayoutTests/http/tests/storageAccess/request-storage-access-rejected-without-gesture-should-not-activate-expected.txtLayoutTests/http/tests/storageAccess/request-storage-access-rejected-without-gesture-should-not-activate.htmlLayoutTests/http/tests/storageAccess/resources/request-storage-access-without-gesture-check-activation-iframe.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may be able to process restricted web content outside the sandbox
Researchers: Luke Francis
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43725 |
| Bugzilla | 312832 |
| Component | WebKit |
| Bug Class | SandboxEscape |
| Severity | medium |
| Commit | ccf0c4874cb25ab1… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved input validation.
Files Changed
Source Files
Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cppSource/WebKit/UIProcess/WebPageProxy.cpp
Test Files
LayoutTests/ipc/load-image-for-decoding-file-url-expected.txtLayoutTests/ipc/load-image-for-decoding-file-url.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Utkarsh Pal, Tristan Madani (@TristanInSec) from Talence Security, stratan (@5tratan) of Almamater Technologies, Narendra Singh (@_3P1C), Josef Korbel (Citadelo), Gia Bui (@yabeow) from Calif.io
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43726 |
| Bugzilla | 313857 |
| Component | JSC |
| Bug Class | UAF |
| Severity | medium |
| Commit | a7e4fdb9545042ae… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Tommy DeVoss from Braze Security Team (@thedawgyg), Gurpreet Shergill, Gia Bui (@yabeow) from Calif.io
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43727 |
| Bugzilla | 313691 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | c5036aadbde48318… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebCore/Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp
Test Files
LayoutTests/editing/async-clipboard/clipboard-write-item-crash-expected.txtLayoutTests/editing/async-clipboard/clipboard-write-item-crash.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: dr3dd
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43731 |
| Bugzilla | 314115 |
| Component | WebKit |
| Bug Class | UAF |
| Severity | medium |
| Commit | 866892a3052f6739… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebKit/GPUProcess/webrtc/UserMediaCaptureManagerProxy.cpp
Test Files
LayoutTests/ipc/usermedia-capture-start-producing-data-race-expected.txtLayoutTests/ipc/usermedia-capture-start-producing-data-race.htmlLayoutTests/platform/glib/TestExpectations
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may disclose sensitive user information
Researchers: Nan Wang (@eternalsakura13)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43732 |
| Bugzilla | 313085 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 5be1236842b36137… |
| Advisory | Apple Advisory |
Root Cause Analysis
A path handling issue was addressed with improved validation.
Files Changed
Source Files
Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cppSource/WebKit/NetworkProcess/NetworkConnectionToWebProcess.hSource/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.inSource/WebKit/NetworkProcess/storage/IDBStorageConnectionToClient.cppSource/WebKit/NetworkProcess/storage/IDBStorageConnectionToClient.hSource/WebKit/NetworkProcess/storage/IDBStorageRegistry.cppSource/WebKit/NetworkProcess/storage/IDBStorageRegistry.hSource/WebKit/NetworkProcess/storage/NetworkStorageManager.cppSource/WebKit/NetworkProcess/storage/NetworkStorageManager.h
Test Files
LayoutTests/ipc/register-file-backed-blob-path-validation-expected.txtLayoutTests/ipc/register-file-backed-blob-path-validation.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Jonathan Alush-Aben
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43734 |
| Bugzilla | 313693 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | 5b76ce8531919008… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebCore/Modules/mediasource/MediaSource.cppSource/WebCore/platform/graphics/MediaPlayer.cppSource/WebCore/platform/graphics/MediaPlayer.h
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may exfiltrate data cross-origin
Researchers: Rhyru9, Merrick Hare, Kwak Kiyong, Song Nuri, Khai Tran, John Lussier, Gurpreet Shergill, Drinor Selmanaj (Sentry)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43735 |
| Bugzilla | 313357 |
| Component | WebCore |
| Bug Class | CrossOrigin |
| Severity | medium |
| Commit | 8254b44eba7e8bfb… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Files Changed
Source Files
Source/WebCore/Modules/WebGPU/GPUDevice.cppSource/WebCore/Modules/WebGPU/GPUDevice.hSource/WebCore/Modules/WebGPU/GPUDevice.idl
Test Files
LayoutTests/http/tests/webgpu/import-external-texture-cross-origin-video-expected.txtLayoutTests/http/tests/webgpu/import-external-texture-cross-origin-video.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may result in the disclosure of process memory
Researchers: Arni Hardarson, Nathaniel Oh (@calysteon)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43740 |
| Bugzilla | 308046 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 2693828e8d7300d8… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/yarr/YarrJIT.cpp
Test Files
JSTests/stress/regexp-backreference-unicode-offset.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Юлия Мерцалова
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43742 |
| Bugzilla | 315161 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | 034f2fbd9b69edba… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebCore/html/canvas/WebGL2RenderingContext.hSource/WebCore/html/canvas/WebGLRenderingContext.hSource/WebCore/html/canvas/WebGLRenderingContextBase.cppSource/WebCore/html/canvas/WebGLRenderingContextBase.h
Test Files
LayoutTests/fast/canvas/webgl/context-restore-concurrent-gc-no-crash-expected.txtLayoutTests/fast/canvas/webgl/context-restore-concurrent-gc-no-crash.html
Patch Preview
diff --git a/LayoutTests/fast/canvas/webgl/context-restore-concurrent-gc-no-crash-expected.txt b/LayoutTests/fast/canvas/webgl/context-restore-concurrent-gc-no-crash-expected.txt
new file mode 100644
index 000000000000..c2541f4f3dd7
--- /dev/null
+++ b/LayoutTests/fast/canvas/webgl/context-restore-concurrent-gc-no-crash-expected.txt
@@ -0,0 +1 @@
+PASS if no crash.
diff --git a/LayoutTests/fast/canvas/webgl/context-restore-concurrent-gc-no-crash.html b/LayoutTests/fast/canvas/webgl/context-restore-concurrent-gc-no-crash.html
new file mode 100644
index 000000000000..a62c55af8994
--- /dev/null
+++ b/LayoutTests/fast/canvas/webgl/context-restore-concurrent-gc-no-crash.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html>
+<body>
+<!-- Exercises a race between WebGL2 context restoration (which reinitializes
+ bound-object state via initializeNewContext) and concurrent GC marking (which
+ traverses that state via addMembersToOpaqueRoots). Without objectGraphLock()
+ held during restoration, the restore path can free objects the GC marker is
+ still reading, causing a use-after-free. -->
+<script>
+if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+}
+if (window.internals)
+ internals.settings.setWebGLErrorsToConsoleEnabled(false);
+
+const tick = () => new Promise(r => setTimeout(r, 0));
+
+// Ensure the GC marker doesn't reach the WebGL wrapper until the concurrent phase.
+const heapPaddingSize = 300000;
+const heapPadding = new Array(heapPaddingSize);
+for (let i = 0; i < heapPaddingSize; i++)
+ heapPadding[i] = { a: i, b: { c: i } };
+
+async function loseAndRestoreContext() {
+ const canvas = document.body.appendChild(document.createElement('canvas'));
+ canvas.width = 1;
+ canvas.height = 1;
+ const gl = canvas.getContext('webgl2');
+ const ext = gl.getExtension('WEBGL_lose_context');
+ for (let i = 0; i < heapPaddingSize; i += 4096)
+ heapPadding[i].g = gl;
+
+ const contextLost = new Promise(r => {
+ canvas.addEventListener('webglcontextlost', e => { e.preventDefault(); r(); });
+ });
+ const contextRestored = new Promise(r => {
+ canvas.addEventListener('webglcontextrestored', () => r());
+ });
+
+ ext.loseContext();
+ await contextLost;
+ await tick();
+
+ // Trigger GC so its concurrent marking phase overlaps the restore timer.
+ new WebAssembly.Memory({ initial: 1024 });
+ new WebAssembly.Memory({ initial: 1024 });
+ ext.restoreContext();
+ await tick();
+ await tick();
+ await contextRestored;
+
+ canvas.remove();
+}
+
+async function runTest() {
+ for (let i = 0; i < 50; i++)
+ await loseAndRestoreContext();
+ document.body.textContent = 'PASS if no crash.';
+ if (window.testRunner)
+ testRunner.notifyDone();
+}
+runTest();
+</script>
+</body>
+</html>
diff --git a/Source/WebCore/html/canvas/WebGL2RenderingContext.h b/Source/WebCore/html/canvas/WebGL2RenderingContext.h
index dcf736d39056..b691cd7a4c8b 100644
--- a/Source/WebCore/html/canvas/WebGL2RenderingContext.h
+++ b/Source/WebCore/html/canvas/WebGL2RenderingContext.h
@@ -261,7 +261,7 @@ class WebGL2RenderingContext final : public WebGLRenderingContextBase {
private:
using WebGLRenderingContextBase::WebGLRenderingContextBase;
- void initializeContextState() final;
+ void initializeContextState() WTF_REQUIRES_LOCK(objectGraphLock()) final;
RefPtr<ArrayBufferView> arrayBufferViewSliceFactory(ASCIILiteral functionName, const ArrayBufferView& data, unsigned startByte, unsigned bytelength);
RefPtr<ArrayBufferView> sliceArrayBufferView(ASCIILiteral functionName, const ArrayBufferView& data, GCGLuint srcOffset, GCGLuint length);
@@ -269,7 +269,7 @@ class WebGL2RenderingContext final : public WebGLRenderingContextBase {
long long getInt64Parameter(GCGLenum) final;
Vector<bool> getIndexedBooleanArrayParameter(GCGLenum pname, GCGLuint index);
- void initializeDefaultObjects() final;
+ void initializeDefaultObjects() WTF_REQUIRES_LOCK(objectGraphLock()) final;
void detachAndRemoveAllObjects() WTF_REQUIRES_LOCK(objectGraphLock()) final;
bool validateBufferTarget(ASCIILiteral functionName, GCGLenum target) final;
bool validateBufferTargetCompatibility(ASCIILiteral, GCGLenum, WebGLBuffer*);
diff --git a/Source/WebCore/html/canvas/WebGLRenderingContext.h b/Source/WebCore/html/canvas/WebGLRenderingContext.h
index 7404a87eb9a4..a9b2f1b3e9de 100644
--- a/Source/WebCore/html/canvas/WebGLRenderingContext.h
+++ b/Source/WebCore/html/canvas/WebGLRenderingContext.h
@@ -60,7 +60,7 @@ class WebGLRenderingContext final : public WebGLRenderingContextBase {
private:
using WebGLRenderingContextBase::WebGLRenderingContextBase;
- void initializeDefaultObjects() final;
+ void initializeDefaultObjects() WTF_REQUIRES_LOCK(objectGraphLock()) final;
void detachAndRemoveAllObjects() WTF_REQUIRES_LOCK(objectGraphLock()) final;
};
diff --git a/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp b/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
index f128a2833781..2216b3ef9011 100644
--- a/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
+++ b/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
@@ -524,8 +524,11 @@ void WebGLRenderingContextBase::initializeNewContext(Ref<GraphicsContextGL> cont
updateActiveOrdinal();
if (!wasActive)
addActiveContext(*this);
- initializeContextState();
- initializeDefaultObjects();
+ {
+ Locker locker { objectGraphLock() };
+ initializeContextState();
+ initializeDefaultObjects();
+ }
// Next calls will receive the context lost callback.
m_context->setClient(this);
}
diff --git a/Source/WebCore/html/canvas/WebGLRenderingContextBase.h b/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
index 57fc93560676..9313e4ff0bca 100644
--- a/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
+++ b/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
@@ -538,8 +538,8 @@ class WebGLRenderingContextBase : public GraphicsContextGL::Client, public GPUBa
friend class ScopedWebGLRestoreTexture;
void initializeNewContext(Ref<GraphicsContextGL>);
- virtual void initializeContextState();
- virtual void initializeDefaultObjects();
+ virtual void initializeContextState() WTF_REQUIRES_LOCK(objectGraphLock());
+ virtual void initializeDefaultObjects() WTF_REQUIRES_LOCK(objectGraphLock());
virtual void detachAndRemoveAllObjects() WTF_REQUIRES_LOCK(objectGraphLock());
// ActiveDOMObject
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: OpenAI Codex Security - Amy Burnett, Khai Tran
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43745 |
| Bugzilla | 315365 |
| Component | JSC |
| Bug Class | OOB |
| Severity | medium |
| Commit | 0f0de8f2a0582988… |
| Advisory | Apple Advisory |
Root Cause Analysis
An out-of-bounds write issue was addressed with improved input validation.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmEntryPlan.cppSource/JavaScriptCore/wasm/WasmEntryPlan.hSource/JavaScriptCore/wasm/WasmIPIntPlan.cpp
Test Files
JSTests/wasm/stress/streaming-compile-try-table-agreement.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: dr3dd
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43746 |
| Bugzilla | 314090 |
| Component | WebKit |
| Bug Class | UAF |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Idan Masas, DARKNAVY (@DarkNavyOrg), Anonymous working with TrendAI Zero Day Initiative, Daniel Rhea
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28847 |
| Bugzilla | 308707 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | e5368156542a8414… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/yarr/RegularExpression.cpp
Test Files
Tools/TestWebKitAPI/CMakeLists.txtTools/TestWebKitAPI/Tests/JavaScriptCore/RegularExpression.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: kwak kiyong / kakaogames
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28883 |
| Bugzilla | 313939 |
| Component | WebKit |
| Bug Class | UAF |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Aisle offensive security research team (Joshua Rogers, Luigino Camastra, Igor Morgenstern, and Guido Vranken), Maher Azzouzi, Ngan Nguyen of Calif.io
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28901 |
| Bugzilla | 310207 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | c5d68122b2faf486… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp
Test Files
JSTests/wasm/regress/310207.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Tristan Madani (@TristanInSec) from Talence Security, Nathaniel Oh (@calysteon)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28902 |
| Bugzilla | 309861 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | c8525868de350de8… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h
Test Files
JSTests/stress/growable-sharedarraybuffer-parallel-grow-during-prototype-methods.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Mateusz Krzywicki (iVerify.io)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28903 |
| Bugzilla | 310303 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | fa0214fe9a50ec15… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/b3/air/AirFixObviousSpills.cpp
Test Files
JSTests/stress/fixobviousspills-earlydefs.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Luka Rački
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28904 |
| Bugzilla | 309601 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 7663d811d06c3255… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/assembler/AssemblerBuffer.hSource/JavaScriptCore/yarr/YarrErrorCode.cppSource/JavaScriptCore/yarr/YarrErrorCode.hSource/JavaScriptCore/yarr/YarrParser.hSource/JavaScriptCore/yarr/YarrPattern.cppSource/JavaScriptCore/yarr/YarrSyntaxChecker.cpp
Test Files
JSTests/stress/regexp-alternative-heavy.jsJSTests/stress/regexp-bol-optimize-out-of-stack.jsJSTests/stress/regexp-combined-large.jsJSTests/stress/regexp-deep-nested.jsJSTests/stress/regexp-heavy-mixed.jsJSTests/stress/regexp-lookahead-heavy.jsJSTests/stress/stack-overflow-regexp.jsLayoutTests/js/script-tests/stack-overflow-regexp.jsLayoutTests/js/stack-overflow-regexp-expected.txt
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Yuhao Hu, Yuanming Lai, Chenggang Wu, and Zhe Wang
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28905 |
| Bugzilla | 308545 |
| Component | WebKit |
| Bug Class | JIT Bug |
| Severity | medium |
| Commit | 392f508eef947d28… |
| Advisory | Apple Advisory |
Root Cause Analysis
FTL JIT OSR exit had a phantom array unwritten slot bug where an array’s length was not properly updated after arr.map(f) when f returned the same array. This is a JIT compilation bug in FTL’s OSR exit handling where the compiler incorrectly assumed array shape during bailout.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may prevent Content Security Policy from being enforced
Researchers: Cantina
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28907 |
| Bugzilla | 308675 |
| Component | WebKit |
| Bug Class | CSP Bypass |
| Severity | medium |
| Commit | 5d910749e9023a7d… |
| Advisory | Apple Advisory |
Root Cause Analysis
CSP path matching did not percent-decode path segments before comparison, allowing %2F..%2F path traversal to bypass script-src path restrictions. Fix: pathMatches() now splits on /, then percent-decodes each segment individually before comparing.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28913 |
| Bugzilla | 311631 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | a9f9b9ecfd4bcdaf… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/TextureMtl.mm
Test Files
Source/ThirdParty/ANGLE/src/tests/gl_tests/ETCTextureTest.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Vitaly Simonovich
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28917 |
| Bugzilla | 310527 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | cf2e67ecb9131bdf… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved input validation.
Files Changed
Source Files
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProvokingVertexHelper.mm
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Milad Nasr and Nicholas Carlini with Claude, Anthropic
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28942 |
| Bugzilla | 312180 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | 70753442a3d86ab5… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebCore/html/HTMLDialogElement.cpp
Test Files
LayoutTests/fast/html/dialog-close-from-button-crash-expected.txtLayoutTests/fast/html/dialog-close-from-button-crash.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Kenneth Hsu of Palo Alto Networks, Jérôme DJOUDER, dr3dd
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28944 |
| Bugzilla | 311131 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 8384c8455e7b5bc4… |
| Advisory | Apple Advisory |
Root Cause Analysis
WebRTC encoded stream transformer allowed writing audio frames to video streams and vice versa. RTCEncodedStreamProducer::writeFrame did not validate that the incoming frame type matched the stream type. Fix: Added m_hasTransformer and m_transformer weak pointer checks; writeFrame now returns early if m_isVideo != isVideo or if the frame is not from the expected transformer.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Gia Bui (@yabeow) from Calif.io, dr3dd, w0wbox
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28946 |
| Bugzilla | 310544 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | 869d5c55313783da… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebCore/html/BaseDateAndTimeInputType.cppSource/WebCore/html/BaseDateAndTimeInputType.hSource/WebCore/html/shadow/DateTimeEditElement.cppSource/WebCore/html/shadow/DateTimeEditElement.h
Test Files
LayoutTests/fast/forms/date/date-editable-components/date-editable-components-change-type-on-input-event-expected.txtLayoutTests/fast/forms/date/date-editable-components/date-editable-components-change-type-on-input-event.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: dr3dd
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28947 |
| Bugzilla | 310234 |
| Component | JSC |
| Bug Class | UAF |
| Severity | medium |
| Commit | 76b34686210f4f67… |
| Advisory | Apple Advisory |
Root Cause Analysis
JSWebAssemblyInstance destructor called m_anchor->tearDown() after unregistering ICs and destroying baseline data. If GC ran during destruction, the anchor could be accessed after partial teardown. Fix: Moved m_anchor->tearDown() to the beginning of the destructor, before any other cleanup.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Maher Azzouzi
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28953 |
| Bugzilla | 309628 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 9161e71798e985c6… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Test Files
JSTests/wasm/regress/309628.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: wac and Kookhwan Lee working with TrendAI Zero Day Initiative
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28955 |
| Bugzilla | 310880 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 5233199dcb0cd58c… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/inspector/agents/InspectorCSSAgent.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: An app may be able to access sensitive user data
Researchers: Cantina
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28958 |
| Bugzilla | 311228 |
| Component | WebCore |
| Bug Class | CSRF |
| Severity | high |
| Commit | d995144a1f1cdc33… |
| Advisory | Apple Advisory |
Root Cause Analysis
FrameLoader::load called addSameSiteInfoToRequestIfNeeded before checking if the initiator should inherit the security origin from its owner. This caused SameSite=Strict cookies to be sent on cross-site navigations initiated by iframes. Fix: Passes initiator.ptr() only when shouldInheritSecurityOriginFromOwner is false.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may disclose sensitive user information
Researchers: Luke Francis, Vaagn Vardanian, kwak kiyong / kakaogames, Vitaly Simonovich, Adel Bouachraoui, greenbynox
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28962 |
| Bugzilla | 309698 |
| Component | WebCore |
| Bug Class | Path Traversal |
| Severity | medium |
| Commit | 08d7278db550a539… |
| Advisory | Apple Advisory |
Root Cause Analysis
Pasteboard drag-and-drop and file upload paths were not validated against an allowlist. A compromised web process could register attachment identifiers pointing to arbitrary files (e.g. /etc/passwd). Fix: Added m_allowedAttachmentFilePaths HashSet to WebProcessProxy, validates paths before registration.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious iframe may use another website’s download settings
Researchers: Khiem Tran
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28971 |
| Bugzilla | 311288 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 4b574bf8287b6b57… |
| Advisory | Apple Advisory |
Root Cause Analysis
Safe Browsing checks were asynchronous and could complete after the navigation policy decision had already proceeded to download. This allowed malicious downloads to start before the Safe Browsing warning was shown. Fix: decidePolicyForNavigationAction and decidePolicyForResponseShared now defer download decisions until whenSafeBrowsingCheckCompletes fires.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Artem Dinaburg of Trail of Bits via Anthropic CVD
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28984 |
| Bugzilla | 311883 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | eba64ef44de39509… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/ftl/FTLOperations.cpp
Test Files
JSTests/stress/ftl-osr-exit-phantom-new-array-with-butterfly-having-a-bad-time.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Do Young Park
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43658 |
| Bugzilla | 307669 |
| Component | JSC |
| Bug Class | UAF |
| Severity | medium |
| Commit | 9a16de46f205d3c7… |
| Advisory | Apple Advisory |
Root Cause Analysis
WebAssembly BBQCallee could be freed while its OMGOSREntryCallee was still being referenced during callsite repatching, causing use-after-free. Fix: updateCallsitesToCallUs now keeps BBQCallee alive via keepAliveBBQCallees vector and only keeps OMGOSREntryCallee alive if the BBQ callee was not already tracked.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may prevent Content Security Policy from being enforced
Researchers: Cantina
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43660 |
| Bugzilla | 308906 |
| Component | WebCore |
| Bug Class | CSP Bypass |
| Severity | medium |
| Commit | f8ed382fb244cc24… |
| Advisory | Apple Advisory |
Root Cause Analysis
CSP blob URL iframe was only inheriting the last CSP header when a document had multiple enforced CSP headers. ContentSecurityPolicyResponseHeaders::addPolicyHeadersTo used setHTTPHeaderField which overwrote instead of appended.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may bypass Content Security Policy
Researchers: lebr0nli of National Yang Ming Chiao Tung University, Security and Systems Lab
| Attribute | Value |
|---|---|
| CVE | CVE-2026-43670 |
| Bugzilla | 309004 |
| Component | WebKit |
| Bug Class | CSP Bypass |
| Severity | high |
| Commit | cb23cbdfde76d52c… |
| Advisory | Apple Advisory |
Root Cause Analysis
AudioWorklet and PaintWorklet did not inherit the owner document’s CSP, allowing eval() and remote script loading even when CSP blocked them. Fix: WorkletParameters now carries contentSecurityPolicyResponseHeaders; worklet global scopes call applyContentSecurityPolicyResponseHeaders() on creation. WorkerModuleScriptLoader now treats worklet destinations as script-src governed.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may bypass Same Origin Policy
Researchers: Thomas Espach
| Attribute | Value |
|---|---|
| CVE | CVE-2026-20643 |
| Bugzilla | 306050 |
| Component | WebCore |
| Bug Class | CrossOrigin |
| Severity | high |
| Commit | b537a57c092d669f… |
| Advisory | Apple Advisory |
Root Cause Analysis
A cross-origin issue in the Navigation API was addressed with improved input validation.
Files Changed
Source Files
Source/WebCore/page/Navigation.cpp
Test Files
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/NavigationAPI.mm
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Yeonghyeon Choi, Daniel Rhea, Söhnke Benedikt Fischedick (Tripton), Emrovsky & Switch3301, Yevhen Pervushyn
| Attribute | Value |
|---|---|
| CVE | CVE-2026-20664 |
| Bugzilla | 306136 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 6b357f32c6075bb8… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/runtime/ArrayBuffer.cppSource/JavaScriptCore/runtime/JSArrayBufferView.hSource/JavaScriptCore/runtime/JSArrayBufferViewInlines.h
Test Files
JSTests/wasm/stress/resizable-buffer-grow-view-refresh.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may prevent Content Security Policy from being enforced
Researchers: webb
| Attribute | Value |
|---|---|
| CVE | CVE-2026-20665 |
| Bugzilla | 304951 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | b4390e8352b7dc2e… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/WebCore/loader/DocumentWriter.cpp
Test Files
LayoutTests/http/tests/security/contentSecurityPolicy/iframe-srcdoc-import-bypass-expected.txtLayoutTests/http/tests/security/contentSecurityPolicy/iframe-srcdoc-import-bypass.htmlLayoutTests/http/tests/security/contentSecurityPolicy/resources/module-pass.pyLayoutTests/imported/w3c/web-platform-tests/content-security-policy/inheritance/inheritance-from-initiator.sub-expected.txt
Overview
Advisory: Apple Security Advisory
Impact:
Description: A maliciously crafted webpage may be able to fingerprint the user
Researchers: Gongyu Ma (@Mezone0)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-20691 |
| Bugzilla | 306827 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | dfe2e0efc8182466… |
| Advisory | Apple Advisory |
Root Cause Analysis
An authorization issue was addressed with improved state management.
Files Changed
Source Files
Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cppSource/WebKit/NetworkProcess/NetworkResourceLoadParameters.hSource/WebKit/WebProcess/Network/WebLoaderStrategy.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Minse Kim, Narcis Oliveras Fontàs, Söhnke Benedikt Fischedick (Tripton), Daniel Rhea, Nathaniel Oh (@calysteon)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28857 |
| Bugzilla | 307723 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 4c82252b8b2face3… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h
Test Files
JSTests/stress/growable-sharedarraybuffer-parallel-grow-during-prototype-methods.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may be able to process restricted web content outside the sandbox
Researchers: greenbynox, Arni Hardarson, and an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28859 |
| Bugzilla | 308248 |
| Component | WebKit |
| Bug Class | SandboxEscape |
| Severity | medium |
| Commit | 6aacf62000967a62… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may be able to access script message handlers intended for other origins
Researchers: Hongze Wu and Shuaike Dong from Ant Group Infrastructure Security Team, and webb
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28861 |
| Bugzilla | 307014 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 795ef8a1ac92461c… |
| Advisory | Apple Advisory |
Root Cause Analysis
A logic issue was addressed with improved state management.
Files Changed
Source Files
Source/WebCore/page/UserMessageHandler.cppSource/WebCore/page/UserMessageHandler.hSource/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp
Test Files
Tools/TestWebKitAPI/Tests/WebKit/WKWebView/WKWebViewEvaluateJavaScript.mm
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a maliciously crafted website may lead to a cross-site scripting attack
Researchers: @hamayanhamayan
| Attribute | Value |
|---|---|
| CVE | CVE-2026-28871 |
| Bugzilla | 305859 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 59efb640749a3024… |
| Advisory | Apple Advisory |
Root Cause Analysis
A logic issue was addressed with improved checks.
Files Changed
Source Files
Source/WebCore/dom/DOMImplementation.cppSource/WebCore/platform/MIMETypeRegistry.cppSource/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
Test Files
LayoutTests/media/iframe-load-html-as-m2ts-expected.txtLayoutTests/media/iframe-load-html-as-m2ts.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: HanQing from TSDubhe and Nan Wang (@eternalsakura13)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-20608 |
| Bugzilla | 303357 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 672cdd38781cce18… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/JavaScriptCore/runtime/PropertyTable.cpp
Test Files
JSTests/stress/private-names-seal-freeze.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: EntryHi
| Attribute | Value |
|---|---|
| CVE | CVE-2026-20635 |
| Bugzilla | 304661 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Fix not public. The WebKit fix for this bug is embargoed or not yet disclosed. The bug ID is confirmed from the Apple advisory, but no public commit references it.
Root Cause Analysis
The issue was addressed with improved memory handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: EntryHi
| Attribute | Value |
|---|---|
| CVE | CVE-2026-20636 |
| Bugzilla | 304657 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Fix not public. The WebKit fix for this bug is embargoed or not yet disclosed. The bug ID is confirmed from the Apple advisory, but no public commit references it.
Root Cause Analysis
The issue was addressed with improved memory handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: HanQing from TSDubhe and Nan Wang (@eternalsakura13)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-20644 |
| Bugzilla | 303444 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 4572dd488e4eb6e0… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmBBQJIT.cppSource/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
Test Files
JSTests/wasm/stress/omg-tail-call-clobber-scratch-register-2.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: A remote attacker may be able to cause a denial-of-service
Researchers: Nathaniel Oh (@calysteon)
| Attribute | Value |
|---|---|
| CVE | CVE-2026-20652 |
| Bugzilla | 303959 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 7afdc436a98c9771… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/platform/audio/AudioResamplerKernel.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: A website may be able to track users through Safari web extensions
Researchers: Tom Van Goethem
| Attribute | Value |
|---|---|
| CVE | CVE-2026-20676 |
| Bugzilla | 305020 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 0f4832ce0eea25af… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/WebCore/xml/XMLSerializer.cpp
Test Files
Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm
Overview
Advisory: Apple Security Advisory
Impact:
Description: A download’s origin may be incorrectly associated
Researchers: @retsew0x01
| Attribute | Value |
|---|---|
| CVE | CVE-2024-8906 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
This is a vulnerability in open source code and Apple Software is among the affected projects. The CVE-ID was assigned by a third party. Learn more about the issue and CVE-ID at cve.org .
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption. Apple is aware of a report that this issue may have been exploited in an extremely sophisticated attack against specific targeted individuals on versions of iOS before iOS 26. CVE-2025-43529 was also issued in response to this report.
Researchers: Apple and Google Threat Analysis Group
| Attribute | Value |
|---|---|
| CVE | CVE-2025-14174 |
| Bugzilla | 303614 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Fix not public. The WebKit fix for this bug is embargoed or not yet disclosed. The bug ID is confirmed from the Apple advisory, but no public commit references it.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Hossein Lotfi (@hosselot) of Trend Micro Zero Day Initiative
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43501 |
| Bugzilla | 301371 |
| Component | WTF |
| Bug Class | IntegerOverflow |
| Severity | medium |
| Commit | ad4544045d66266c… |
| Advisory | Apple Advisory |
Root Cause Analysis
A buffer overflow issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WTF/wtf/HashTable.h
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: 이동하 (Lee Dong Ha of BoB 14th)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43511 |
| Bugzilla | 300926 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | bb6619c2421179b0… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebCore/inspector/agents/InspectorAnimationAgent.cppSource/WebCore/inspector/agents/InspectorAnimationAgent.h
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to arbitrary code execution. Apple is aware of a report that this issue may have been exploited in an extremely sophisticated attack against specific targeted individuals on versions of iOS before iOS 26. CVE-2025-14174 was also issued in response to this report.
Researchers: Google Threat Analysis Group
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43529 |
| Bugzilla | 302502 |
| Component | JSC |
| Bug Class | UAF |
| Severity | critical |
| Commit | b21a503b579a8ab1… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Phil Pizlo of Epic Games
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43531 |
| Bugzilla | 301940 |
| Component | bmalloc |
| Bug Class | Race |
| Severity | medium |
| Commit | 39a5ac27139893e6… |
| Advisory | Apple Advisory |
Root Cause Analysis
A race condition was addressed with improved state handling.
Files Changed
Source Files
Source/bmalloc/libpas/src/libpas/pas_local_allocator_inlines.hSource/bmalloc/libpas/src/libpas/pas_segregated_heap.cSource/bmalloc/libpas/src/libpas/pas_segregated_heap.h
Test Files
Source/bmalloc/libpas/src/test/ExpendableMemoryTests.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Google Big Sleep, Nan Wang (@eternalsakura13)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43535 |
| Bugzilla | 300774 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 26d50a4d4b2df76c… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp
Test Files
JSTests/wasm/stress/bbq-array-set-consume.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Nan Wang (@eternalsakura13)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43536 |
| Bugzilla | 301726 |
| Component | JSC |
| Bug Class | UAF |
| Severity | medium |
| Commit | 1025bd18c9c7bd3d… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/JavaScriptCore/bytecode/CodeBlock.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Hossein Lotfi (@hosselot) of Trend Micro Zero Day Initiative
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43541 |
| Bugzilla | 301257 |
| Component | JSC |
| Bug Class | TypeConfusion |
| Severity | medium |
| Commit | ef1aba9e847aa7b6… |
| Advisory | Apple Advisory |
Root Cause Analysis
A type confusion issue was addressed with improved state handling.
Files Changed
Source Files
Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
Test Files
JSTests/stress/data-view-byte-length-oob-exit.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: An app may be able to access sensitive user data
Researchers: Wojciech Regula of SecuRing (wojciechregula.blog)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-46282 |
| Bugzilla | 295941 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | high |
| Commit | 50b0e0bcc62b2450… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with additional permissions checks.
Files Changed
Source Files
Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cppSource/WebKit/UIProcess/WebPageProxy.cppSource/WebKit/UIProcess/WebPageProxy.h
Test Files
Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxprojTools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mmTools/TestWebKitAPI/Tests/WebKitCocoa/NotificationAPI.mmTools/TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mmTools/TestWebKitAPI/Tests/WebKitCocoa/example.webarchive
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Hossein Lotfi (@hosselot) of Trend Micro Zero Day Initiative, Nan Wang (@eternalsakura13)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-46298 |
| Bugzilla | 301468 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | a1a6185cc83ec556… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp
Test Files
JSTests/stress/array-sink-conditional-initialization.jsJSTests/stress/array-sink-diamond-initialization-then-read.jsJSTests/stress/array-sink-read-uninitialized-hole.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may disclose internal states of the app
Researchers: Google Big Sleep
| Attribute | Value |
|---|---|
| CVE | CVE-2025-46299 |
| Bugzilla | 299518 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Fix not public. The WebKit fix for this bug is embargoed or not yet disclosed. The bug ID is confirmed from the Apple advisory, but no public commit references it.
Root Cause Analysis
A memory initialization issue was addressed with improved memory handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A website may exfiltrate image data cross-origin
Researchers: Tom Van Goethem
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43392 |
| Bugzilla | 297566 |
| Component | WebCore |
| Bug Class | CrossOrigin |
| Severity | medium |
| Commit | 569f9f07502847a5… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved handling of caches.
Files Changed
Source Files
Source/WebCore/html/OffscreenCanvas.cppSource/WebCore/html/canvas/PlaceholderRenderingContext.cppSource/WebCore/html/canvas/PlaceholderRenderingContext.h
Test Files
LayoutTests/http/tests/security/offscreen-canvas-remote-read-remote-image-expected.txtLayoutTests/http/tests/security/offscreen-canvas-remote-read-remote-image.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Nan Wang (@eternalsakura13)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43421 |
| Bugzilla | 300718 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 56f026944a16a4ba… |
| Advisory | Apple Advisory |
Root Cause Analysis
Multiple issues were addressed by disabling array allocation sinking.
Files Changed
Source Files
Source/JavaScriptCore/runtime/OptionsList.h
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43425 |
| Bugzilla | 298851 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | fcd2a8fc20dda5aa… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGCloneHelper.cppSource/JavaScriptCore/dfg/DFGCloneHelper.h
Test Files
JSTests/stress/loop-unrolling-multi-get-and-put-by-offset.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Gary Kwong, rheza (@ginggilBesel)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43427 |
| Bugzilla | 298628 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 127c1d5c4d40d679… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.hSource/JavaScriptCore/bytecompiler/BytecodeGenerator.cppSource/JavaScriptCore/llint/LowLevelInterpreter32_64.asmSource/JavaScriptCore/llint/LowLevelInterpreter64.asmSource/JavaScriptCore/runtime/CachedTypes.cpp
Test Files
JSTests/stress/switch-imm-int32-max.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Google Big Sleep
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43429 |
| Bugzilla | 298232 |
| Component | JSC |
| Bug Class | IntegerOverflow |
| Severity | medium |
| Commit | 7a45348e0e20683e… |
| Advisory | Apple Advisory |
Root Cause Analysis
A buffer overflow was addressed with improved bounds checking.
Files Changed
Source Files
Source/JavaScriptCore/runtime/StringPrototype.cppSource/WTF/wtf/unicode/icu/ICUHelpers.h
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Google Big Sleep
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43430 |
| Bugzilla | 298196 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | b107f7698299c89d… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmBBQJIT.cppSource/JavaScriptCore/wasm/WasmOperations.cpp
Test Files
JSTests/wasm/stress/ipint-bbq-osr-check-try-implicit-slot-overlap.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Google Big Sleep
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43431 |
| Bugzilla | 298194 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | d4b9e6993567d3c3… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/wasm/js/JSWebAssemblyArrayInlines.hSource/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cppSource/JavaScriptCore/wasm/js/JSWebAssemblyStruct.hSource/JavaScriptCore/wasm/js/WebAssemblyGCStructure.cppSource/JavaScriptCore/wasm/js/WebAssemblyGCStructure.h
Test Files
JSTests/wasm/regress/298194.jsJSTests/wasm/spec-harness/wasm-module-builder-gc.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Hossein Lotfi (@hosselot) of Trend Micro Zero Day Initiative
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43432 |
| Bugzilla | 299313 |
| Component | JSC |
| Bug Class | UAF |
| Severity | medium |
| Commit | d329e095fc8c1874… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmFunctionParser.h
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Google Big Sleep
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43433 |
| Bugzilla | 298093 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Fix not public. The WebKit fix for this bug is embargoed or not yet disclosed. The bug ID is confirmed from the Apple advisory, but no public commit references it.
Root Cause Analysis
The issue was addressed with improved memory handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Google Big Sleep
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43434 |
| Bugzilla | 297958 |
| Component | JSC |
| Bug Class | UAF |
| Severity | medium |
| Commit | ef9304e0e82bf304… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmGlobal.hSource/JavaScriptCore/wasm/WasmTable.cppSource/JavaScriptCore/wasm/WasmTable.hSource/JavaScriptCore/wasm/WasmTypeDefinition.hSource/JavaScriptCore/wasm/WasmTypeDefinitionInlines.h
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Justin Cohen of Google
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43435 |
| Bugzilla | 299391 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | cd945f0c3fe21294… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/platform/cocoa/WebAVPlayerLayerView.mm
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: rheza (@ginggilBesel), shandikri working with Trend Micro Zero Day Initiative
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43438 |
| Bugzilla | 297662 |
| Component | JSC |
| Bug Class | UAF |
| Severity | medium |
| Commit | 045fd8ec92379f84… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/JavaScriptCore/bytecode/SpeculatedType.cppSource/JavaScriptCore/bytecode/SpeculatedType.hSource/JavaScriptCore/dfg/DFGSpeculativeJIT.cppSource/JavaScriptCore/dfg/DFGUseKind.hSource/JavaScriptCore/ftl/FTLLowerDFGToB3.cppSource/JavaScriptCore/runtime/JSType.h
Test Files
JSTests/stress/map-set-iterator-speculated-types.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Nan Wang (@eternalsakura13)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43440 |
| Bugzilla | 298126 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 78b31d59089f6578… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed with improved checks
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: rheza (@ginggilBesel)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43441 |
| Bugzilla | 298496 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 11eaa3910d44873a… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cppSource/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp
Test Files
JSTests/wasm/stress/omg-tail-call-clobber-scratch-register.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43443 |
| Bugzilla | 299843 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Fix not public. The WebKit fix for this bug is embargoed or not yet disclosed. The bug ID is confirmed from the Apple advisory, but no public commit references it.
Root Cause Analysis
This issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Gary Kwong, Hossein Lotfi (@hosselot) of Trend Micro Zero Day Initiative
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43457 |
| Bugzilla | 298606 |
| Component | JSC |
| Bug Class | UAF |
| Severity | medium |
| Commit | f014a32890763b13… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.hSource/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cppSource/JavaScriptCore/dfg/DFGClobberize.hSource/JavaScriptCore/dfg/DFGCloneHelper.hSource/JavaScriptCore/dfg/DFGConstantFoldingPhase.cppSource/JavaScriptCore/dfg/DFGDoesGC.cppSource/JavaScriptCore/dfg/DFGFixupPhase.cppSource/JavaScriptCore/dfg/DFGLoopUnrollingPhase.cppSource/JavaScriptCore/dfg/DFGMayExit.cppSource/JavaScriptCore/dfg/DFGNode.cppSource/JavaScriptCore/dfg/DFGNode.hSource/JavaScriptCore/dfg/DFGNodeType.hSource/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cppSource/JavaScriptCore/dfg/DFGObjectMaterializationData.hSource/JavaScriptCore/dfg/DFGOperations.cppSource/JavaScriptCore/dfg/DFGOperations.hSource/JavaScriptCore/dfg/DFGPredictionPropagationPhase.cppSource/JavaScriptCore/dfg/DFGPromotedHeapLocation.hSource/JavaScriptCore/dfg/DFGSafeToExecute.hSource/JavaScriptCore/dfg/DFGSpeculativeJIT.cppSource/JavaScriptCore/dfg/DFGSpeculativeJIT.hSource/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cppSource/JavaScriptCore/dfg/DFGSpeculativeJIT64.cppSource/JavaScriptCore/dfg/DFGStoreBarrierInsertionPhase.cppSource/JavaScriptCore/dfg/DFGUseKind.hSource/JavaScriptCore/dfg/DFGValidate.cppSource/JavaScriptCore/ftl/FTLCapabilities.cppSource/JavaScriptCore/ftl/FTLExitTimeObjectMaterialization.cppSource/JavaScriptCore/ftl/FTLLowerDFGToB3.cppSource/JavaScriptCore/ftl/FTLOperations.cppSource/JavaScriptCore/runtime/IndexingType.cppSource/JavaScriptCore/runtime/IndexingType.h
Test Files
JSTests/stress/array-allocation-elimination-closure-capture.jsJSTests/stress/array-allocation-elimination-conditional-usage.jsJSTests/stress/array-allocation-elimination-cross-function.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Phil Beauvoir
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43458 |
| Bugzilla | 296693 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Fix not public. The WebKit fix for this bug is embargoed or not yet disclosed. The bug ID is confirmed from the Apple advisory, but no public commit references it.
Root Cause Analysis
This issue was addressed through improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may exfiltrate data cross-origin
Researchers: Aleksejs Popovs
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43480 |
| Bugzilla | 276208 |
| Component | WebCore |
| Bug Class | CrossOrigin |
| Severity | medium |
| Commit | 0473037b55025aeb… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Files Changed
Source Files
Source/WebCore/loader/MediaResourceLoader.cppSource/WebCore/loader/MediaResourceLoader.h
Test Files
LayoutTests/http/tests/media/resources/hls/.htaccessLayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media-expected.txtLayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media-with-cors-expected.txtLayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media-with-cors.htmlLayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media.htmlLayoutTests/platform/glib/TestExpectationsLayoutTests/platform/win/TestExpectations
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a malicious website may lead to address bar spoofing
Researchers: @RenwaX23
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43493 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: An app may be able to bypass certain Privacy preferences
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43502 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | high |
| Advisory | Apple Advisory |
Root Cause Analysis
A privacy issue was addressed by removing sensitive data.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a malicious website may lead to user interface spoofing
Researchers: @RenwaX23
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43503 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
An inconsistent user interface issue was addressed with improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to unexpected URL redirection
Researchers: Evan Waelde
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31254 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed with improved URL validation.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Big Bear
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43272 |
| Bugzilla | 294550 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | fa85413077accf8c… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/Modules/url-pattern/URLPatternTokenizer.cpp
Test Files
LayoutTests/fast/url/urlpattern-invalid-pattern.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a malicious website may lead to address bar spoofing
Researchers: @RenwaX23
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43327 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed by adding additional logic.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43342 |
| Bugzilla | 296042 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 8b9fc1b8515151cc… |
| Advisory | Apple Advisory |
Root Cause Analysis
A correctness issue was addressed with improved checks.
Files Changed
Source Files
Source/JavaScriptCore/bytecode/BytecodeList.rbSource/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cppSource/JavaScriptCore/llint/LLIntOpcode.hSource/JavaScriptCore/llint/LLIntSlowPaths.cppSource/JavaScriptCore/llint/LowLevelInterpreter64.asm
Test Files
JSTests/stress/instanceof-osr-exit-hasInstance-getter.jsJSTests/stress/instanceof-osr-exit-prototype-getter.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43343 |
| Bugzilla | 296490 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 899a38cf9a50a555… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
Test Files
JSTests/wasm/stress/omg-osr-stack-slot-positioning.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: A website may be able to access sensor information without user consent
Researchers: Jaydev Ahire
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43356 |
| Bugzilla | 296153 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | c420ed2f891b1948… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved handling of caches.
Files Changed
Source Files
Source/WebKit/UIProcess/WebPageProxy.cpp
Test Files
Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mmTools/TestWebKitAPI/Tests/WebKitCocoa/media-session-capture.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Pawel Wylecial of REDTEAM.PL working with Trend Micro Zero Day Initiative, Ignacio Sanmillan (@ulexec)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43368 |
| Bugzilla | 296276 |
| Component | WebKit |
| Bug Class | UAF |
| Severity | medium |
| Commit | 674611789255a98f… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebKit/Platform/IPC/Connection.cppSource/WebKit/Platform/IPC/Connection.h
Overview
Advisory: Apple Security Advisory
Impact:
Description: A remote attacker may be able to view leaked DNS queries with Private Relay turned on
Researchers: Mike Cardwell of grepular.com, Bob Lord
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43376 |
| Bugzilla | 295943 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 5247bc4ad4b98d16… |
| Advisory | Apple Advisory |
Root Cause Analysis
A logic issue was addressed with improved state management.
Files Changed
Source Files
Source/WebCore/PAL/pal/spi/cf/CFNetworkSPI.hSource/WebCore/platform/network/cf/DNSResolveQueueCFNet.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Ignacio Sanmillan (@ulexec)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43419 |
| Bugzilla | 293895 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | bcb47de34ff759fc… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/ThirdParty/ANGLE/.gnSource/ThirdParty/ANGLE/ANGLE.plistSource/ThirdParty/ANGLE/CONTRIBUTORSSource/ThirdParty/ANGLE/DEPSSource/ThirdParty/ANGLE/GLESv2.cmakeSource/ThirdParty/ANGLE/WATCHLISTSSource/ThirdParty/ANGLE/WebKit/ANGLEShaderProgramVersion.hSource/ThirdParty/ANGLE/WebKit/angle_commit.hSource/ThirdParty/ANGLE/changes.diffSource/ThirdParty/ANGLE/doc/ExtensionSupport.mdSource/ThirdParty/ANGLE/extensions/EGL_ANGLE_device_webgpu.txtSource/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_webgpu.txtSource/ThirdParty/ANGLE/extensions/EGL_ANGLE_webgpu_texture_client_buffer.txtSource/ThirdParty/ANGLE/gni/angle.gniSource/ThirdParty/ANGLE/include/EGL/eglext_angle.hSource/ThirdParty/ANGLE/include/GLES2/gl2ext.hSource/ThirdParty/ANGLE/include/GLES2/gl2ext_angle.hSource/ThirdParty/ANGLE/include/export.hSource/ThirdParty/ANGLE/include/platform/Feature.hSource/ThirdParty/ANGLE/include/platform/autogen/FeaturesVk_autogen.hSource/ThirdParty/ANGLE/include/platform/autogen/FeaturesWgpu_autogen.hSource/ThirdParty/ANGLE/include/platform/gen_features.pySource/ThirdParty/ANGLE/include/platform/vk_features.jsonSource/ThirdParty/ANGLE/include/platform/wgpu_features.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/Extension_files.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/GLenum_value_to_string_map.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/OpenGL_dispatch_table.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/SPIR-V_helpers.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/WebGPU_format.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/interpreter_utils.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/packed_enum.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.jsonSource/ThirdParty/ANGLE/scripts/code_generation_hashes/restricted_traces.jsonSource/ThirdParty/ANGLE/scripts/generate_entry_points.pySource/ThirdParty/ANGLE/scripts/registry_xml.pySource/ThirdParty/ANGLE/scripts/roll_aosp.shSource/ThirdParty/ANGLE/src/android_system_settings/res/layout/fragment.xmlSource/ThirdParty/ANGLE/src/android_system_settings/src/com/android/angle/AndroidManifest.xmlSource/ThirdParty/ANGLE/src/android_system_settings/src/com/android/angle/MainActivity.javaSource/ThirdParty/ANGLE/src/android_system_settings/src/com/android/angle/common/MainFragment.javaSource/ThirdParty/ANGLE/src/common/PackedGLEnums_autogen.cppSource/ThirdParty/ANGLE/src/common/PackedGLEnums_autogen.hSource/ThirdParty/ANGLE/src/common/angleutils.cppSource/ThirdParty/ANGLE/src/common/angleutils.hSource/ThirdParty/ANGLE/src/common/gl_enum_utils_autogen.cppSource/ThirdParty/ANGLE/src/common/packed_gl_enums.jsonSource/ThirdParty/ANGLE/src/common/system_utils.hSource/ThirdParty/ANGLE/src/common/utilities.cppSource/ThirdParty/ANGLE/src/compiler/translator/CollectVariables.cppSource/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cppSource/ThirdParty/ANGLE/src/compiler/translator/Types.hSource/ThirdParty/ANGLE/src/compiler/translator/msl/EmitMetal.cppSource/ThirdParty/ANGLE/src/compiler/translator/msl/ProgramPrelude.cppSource/ThirdParty/ANGLE/src/compiler/translator/spirv/TranslatorSPIRV.cppSource/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo.hSource/ThirdParty/ANGLE/src/libANGLE/Buffer.cppSource/ThirdParty/ANGLE/src/libANGLE/Buffer.hSource/ThirdParty/ANGLE/src/libANGLE/Caps.cppSource/ThirdParty/ANGLE/src/libANGLE/Caps.hSource/ThirdParty/ANGLE/src/libANGLE/Context.cppSource/ThirdParty/ANGLE/src/libANGLE/Context.hSource/ThirdParty/ANGLE/src/libANGLE/Context.inl.hSource/ThirdParty/ANGLE/src/libANGLE/Context_gles_ext_autogen.hSource/ThirdParty/ANGLE/src/libANGLE/ErrorStrings.hSource/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cppSource/ThirdParty/ANGLE/src/libANGLE/State.cppSource/ThirdParty/ANGLE/src/libANGLE/Surface.cppSource/ThirdParty/ANGLE/src/libANGLE/Texture.cppSource/ThirdParty/ANGLE/src/libANGLE/Texture.hSource/ThirdParty/ANGLE/src/libANGLE/TransformFeedback.cppSource/ThirdParty/ANGLE/src/libANGLE/VertexArray.cppSource/ThirdParty/ANGLE/src/libANGLE/VertexArray.hSource/ThirdParty/ANGLE/src/libANGLE/VertexArray_unittest.cppSource/ThirdParty/ANGLE/src/libANGLE/angletypes.hSource/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.cppSource/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.hSource/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_params.cppSource/ThirdParty/ANGLE/src/libANGLE/gles_extensions_autogen.cppSource/ThirdParty/ANGLE/src/libANGLE/gles_extensions_autogen.hSource/ThirdParty/ANGLE/src/libANGLE/queryutils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/SurfaceImpl.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/SurfaceImpl.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/VertexArrayImpl.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/SurfaceD3D.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/SurfaceD3D.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Query11.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Query9.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/driver_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/DispatchTableGL_autogen.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/DispatchTableGL_autogen.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/QueryGL.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/QueryGL.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/functionsgl_typedefs.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/gl_bindings_data.jsonSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/null_functions.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/null_functions.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProvokingVertexHelper.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/VertexArrayMtl.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramExecutableVk.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/spv_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/spv_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_caps_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_renderer.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_renderer.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/BUILD.gnSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/BufferWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ContextWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ContextWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/DeviceWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/DisplayWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/DisplayWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ImageWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ImageWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ProgramExecutableWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/ProgramWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/RenderbufferWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/RenderbufferWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/SurfaceWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/SurfaceWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/TextureWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/TextureWgpu.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/VertexArrayWgpu.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/linux/x11/WindowSurfaceWgpuX11.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/mac/WindowSurfaceWgpuMetalLayer.mmSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_command_buffer.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_command_buffer.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_format_map.jsonSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_format_table_autogen.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_format_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_format_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_helpers.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_helpers.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_pipeline_state.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_proc_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_proc_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_sources.gniSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_utils.cppSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/wgpu_utils.hSource/ThirdParty/ANGLE/src/libANGLE/renderer/wgpu/win32/WindowSurfaceWgpuWin32.cppSource/ThirdParty/ANGLE/src/libANGLE/validationEGL.cppSource/ThirdParty/ANGLE/src/libANGLE/validationES.cppSource/ThirdParty/ANGLE/src/libANGLE/validationES2.cppSource/ThirdParty/ANGLE/src/libANGLE/validationES3.cppSource/ThirdParty/ANGLE/src/libANGLE/validationES31.cppSource/ThirdParty/ANGLE/src/libANGLE/validationES31.hSource/ThirdParty/ANGLE/src/libANGLE/validationESEXT.cppSource/ThirdParty/ANGLE/src/libANGLE/validationESEXT_autogen.hSource/ThirdParty/ANGLE/src/libGLESv2.gniSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_1_0_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_2_0_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_3_0_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_3_1_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_3_2_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.hSource/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.cppSource/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.defSource/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_no_capture_autogen.defSource/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_vulkan_secondaries_autogen.defSource/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_with_capture_autogen.defSource/ThirdParty/ANGLE/util/autogen/angle_features_autogen.cppSource/ThirdParty/ANGLE/util/autogen/angle_features_autogen.hSource/ThirdParty/ANGLE/util/capture/frame_capture_replay_autogen.cpp
Test Files
Source/ThirdParty/ANGLE/src/tests/BUILD.gnSource/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gniSource/ThirdParty/ANGLE/src/tests/angle_end2end_tests_expectations.txtSource/ThirdParty/ANGLE/src/tests/compiler_tests/Parse_test.cppSource/ThirdParty/ANGLE/src/tests/deqp_support/deqp.gniSource/ThirdParty/ANGLE/src/tests/gl_tests/ClearTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/DrawBaseVertexBaseInstanceTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/ErrorMessages.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/GLSLUBTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/ImageTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/MultiDrawTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/SyncQueriesTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/TransformFeedbackTest.cppSource/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cppSource/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_trace_perf.pySource/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_traces.jsonSource/ThirdParty/ANGLE/src/tests/test_utils/angle_test_instantiate.cppSource/ThirdParty/ANGLE/src/tests/test_utils/angle_test_platform.cppSource/ThirdParty/ANGLE/src/tests/test_utils/angle_test_platform.h
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Andreas Jaegersberger & Ro Achterberg of Nosebeard Labs
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24188 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A logic issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Yuhao Hu, Yan Kang, Chenggang Wu, and Xiaojie Wei
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31273 |
| Bugzilla | 293579 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | a05032c6961001c2… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/runtime/OrderedHashTableHelper.h
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Yuhao Hu, Yan Kang, Chenggang Wu, and Xiaojie Wei
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31277 |
| Bugzilla | 291745 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 716536ce98d6f8d4… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/runtime/JSGlobalObjectInlines.h
Test Files
JSTests/stress/regexp-matches-array-should-respect-have-a-bad-time.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Yuhao Hu, Yan Kang, Chenggang Wu, and Xiaojie Wei
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31278 |
| Bugzilla | 291742 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 90aa8070e1b674f9… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGAvailabilityMap.cppSource/JavaScriptCore/dfg/DFGAvailabilityMap.hSource/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cppSource/JavaScriptCore/dfg/DFGPutStackSinkingPhase.cppSource/JavaScriptCore/ftl/FTLLowerDFGToB3.cppSource/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp
Test Files
JSTests/stress/osr-availability-heap-materialization-clobbered.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing web content may lead to a denial-of-service
Researchers: Yuhao Hu, Yan Kang, Chenggang Wu, and Xiaojie Wei
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43211 |
| Bugzilla | 293730 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 58218eebdaf5770a… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGFixupPhase.cppSource/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
Test Files
JSTests/stress/string-replace-speculate-string.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Nan Wang (@eternalsakura13) and Ziling Chen
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43212 |
| Bugzilla | 293197 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 240b9cb9889168bc… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
Test Files
JSTests/wasm/stress/omg-tail-call-to-function-with-less-arguments.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Google V8 Security Team
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43213 |
| Bugzilla | 292621 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 946696720edc253e… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/llint/WebAssembly.asmSource/JavaScriptCore/wasm/js/JSToWasm.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: shandikri working with Trend Micro Zero Day Initiative, Google V8 Security Team
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43214 |
| Bugzilla | 292599 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 666190cff29d03c1… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/llint/InPlaceInterpreter64.asmSource/JavaScriptCore/wasm/WasmIPIntGenerator.cppSource/JavaScriptCore/wasm/WasmIPIntGenerator.h
Test Files
JSTests/wasm/stress/wasm-try-table-catching-backwards.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Ignacio Sanmillan (@ulexec)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43216 |
| Bugzilla | 295382 |
| Component | WebCore |
| Bug Class | UAF |
| Severity | medium |
| Commit | 4637324afb310494… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebCore/platform/audio/HRTFDatabaseLoader.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may disclose sensitive user information
Researchers: Gilad Moav, Yehuda Afek, Anat Bremler-Barr, and Amit Klein
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43227 |
| Bugzilla | 292888 |
| Component | WTF |
| Bug Class | LogicError |
| Severity | medium |
| Commit | c3811ccef9594d3a… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/WTF/wtf/URL.cpp
Test Files
LayoutTests/http/tests/security/block-connection-to-zero-port.https-expected.txtLayoutTests/http/tests/security/block-connection-to-zero-port.https.htmlLayoutTests/platform/gtk-wk2/security/block-test-expected.txtLayoutTests/platform/wpe/security/block-test-expected.txt
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a malicious website may lead to address bar spoofing
Researchers: Jaydev Ahire
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43228 |
| Bugzilla | 294374 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 632a293bf7754147… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved UI.
Files Changed
Source Files
Source/WebKit/UIProcess/PageClient.hSource/WebKit/UIProcess/WebPageProxy.cppSource/WebKit/UIProcess/ios/PageClientImplIOS.hSource/WebKit/UIProcess/ios/PageClientImplIOS.mm
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to universal cross site scripting
Researchers: Martin Bajanik of Fingerprint, Ammar Askar
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43229 |
| Bugzilla | 285927 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | feb7725d8aedfa96… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/WebKit/UIProcess/WebPageProxy.cppTools/Scripts/webkitpy/port/mac.py
Test Files
LayoutTests/platform/mac-wk1/TestExpectationsLayoutTests/webarchive/loading/resources/quarantined_top.webarchiveLayoutTests/webarchive/loading/test-loading-archive-with-link-expected.txtLayoutTests/webarchive/loading/test-loading-archive-with-link.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: A download’s origin may be incorrectly associated
Researchers: Syarif Muhammad Sajjad
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43240 |
| Bugzilla | 293994 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 0578185b8a7484c5… |
| Advisory | Apple Advisory |
Root Cause Analysis
A logic issue was addressed with improved checks.
Files Changed
Source Files
Source/WebKit/UIProcess/WebPageProxy.cpp
Test Files
Tools/TestWebKitAPI/Tests/WebKitCocoa/Download.mm
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may disclose internal states of the app
Researchers: HexRabbit (@h3xr4bb1t) from DEVCORE Research Team
| Attribute | Value |
|---|---|
| CVE | CVE-2025-43265 |
| Bugzilla | 294182 |
| Component | JSC |
| Bug Class | OOB |
| Severity | medium |
| Commit | d96ab2fa64c62763… |
| Advisory | Apple Advisory |
Root Cause Analysis
An out-of-bounds read was addressed with improved input validation.
Files Changed
Source Files
Source/JavaScriptCore/yarr/YarrJIT.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: A type confusion issue could lead to memory corruption
Researchers: Google V8 Security Team
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24213 |
| Bugzilla | 286694 |
| Component | WebCore |
| Bug Class | TypeConfusion |
| Severity | medium |
| Commit | c1b04541303ec183… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed with improved handling of floats.
Files Changed
Source Files
Source/WTF/wtf/PlatformHave.hSource/WebCore/Sources.txtSource/WebCore/WebCore.xcodeproj/project.pbxprojSource/WebCore/platform/audio/DenormalDisabler.cppSource/WebCore/platform/audio/DenormalDisabler.h
Test Files
LayoutTests/platform/ios/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-denormals.https.window-expected.txtLayoutTests/platform/mac/TestExpectationsLayoutTests/webaudio/audoworklet-denormal-float-values-expected.txtLayoutTests/webaudio/audoworklet-denormal-float-values.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: rheza (@ginggilBesel), Edouard Bochin (@le_douds) and Tao Yan (@Ga1ois) of Palo Alto Networks
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24223 |
| Bugzilla | 287577 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Fix not public. The WebKit fix for this bug is embargoed or not yet disclosed. The bug ID is confirmed from the Apple advisory, but no public commit references it.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Nan Wang(@eternalsakura13)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31204 |
| Bugzilla | 291506 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 265dbd5abf60768a… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp
Test Files
JSTests/wasm/stress/array-get-large-i64-index.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may exfiltrate data cross-origin
Researchers: Ivan Fratric of Google Project Zero
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31205 |
| Bugzilla | 290992 |
| Component | WebCore |
| Bug Class | CrossOrigin |
| Severity | medium |
| Commit | 647e80ac22b36756… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Files Changed
Source Files
Source/WebCore/css/CSSImportRule.cppSource/WebCore/css/CSSStyleSheet.cppSource/WebCore/css/CSSStyleSheet.hSource/WebCore/dom/ProcessingInstruction.cppSource/WebCore/html/HTMLLinkElement.cpp
Test Files
LayoutTests/http/tests/security/access-cssstylesheet-after-removing-from-document-expected.txtLayoutTests/http/tests/security/access-cssstylesheet-after-removing-from-document.htmlLayoutTests/http/tests/security/access-imported-cssstylesheet-after-removing-from-document-expected.txtLayoutTests/http/tests/security/access-imported-cssstylesheet-after-removing-from-document.htmlLayoutTests/http/tests/security/cannot-read-cssrules-redirect-expected.txtLayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-css-cross-origin.https-expected.txt
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Yuhao Hu, Yan Kang, Chenggang Wu, Xiaojie Wei
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31206 |
| Bugzilla | 290834 |
| Component | JSC |
| Bug Class | TypeConfusion |
| Severity | medium |
| Commit | 2a545562709ac7a6… |
| Advisory | Apple Advisory |
Root Cause Analysis
A type confusion issue was addressed with improved state handling.
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGFixupPhase.cppSource/JavaScriptCore/dfg/DFGSpeculativeJIT.cppSource/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
Test Files
JSTests/stress/dfg-get-global-object-should-use-object-edge.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Jiming Wang and Jikai Ren
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31215 |
| Bugzilla | 288814 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | ac09d743b1828ad9… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.hSource/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
Test Files
JSTests/stress/dfg-ai-should-reduce-new-array-with-spread-structures.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Ignacio Sanmillan (@ulexec)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31217 |
| Bugzilla | 289677 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 2f1c7a102f89c395… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved input validation.
Files Changed
Source Files
Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/TextureMtl.mm
Test Files
Source/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Andreas Jaegersberger & Ro Achterberg of Nosebeard Labs
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31223 |
| Bugzilla | 289387 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 92e69a181eb39835… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Files Changed
Source Files
Source/JavaScriptCore/runtime/JSONObject.cpp
Test Files
JSTests/stress/fast-stringifier-check-string-length.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: wac working with Trend Micro Zero Day Initiative
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31238 |
| Bugzilla | 289653 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | a23df0dfbec0c9df… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Files Changed
Source Files
Source/WebCore/page/scrolling/mac/ScrollerMac.hSource/WebCore/page/scrolling/mac/ScrollerMac.mm
Test Files
LayoutTests/fast/scrolling/mac/scrollbars/scrollbar-crash-expected.txtLayoutTests/fast/scrolling/mac/scrollbars/scrollbar-crash.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Juergen Schmied of Lynck GmbH
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31257 |
| Bugzilla | 290985 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | ddbf9329b2ca0320… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/history/BackForwardCache.cppSource/WebCore/page/LocalFrameView.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: A website may be able to spoof the domain name in the title of a pop-up window
Researchers: @RenwaX23
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31266 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A spoofing issue was addressed with improved truncation when displaying the fully qualified domain name
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may be able to claim WebAuthn credentials from another website that shares a registrable suffix
Researchers: Martin Kreichgauer of Google Chrome
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24180 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved input validation.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a website may leak sensitive data
Researchers: Vsevolod Kokorin (Slonser) of Solidlab
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24192 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A script imports issue was addressed with improved isolation.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Loading a malicious iframe may lead to a cross-site scripting attack
Researchers: Muhammad Zaid Ghifari (Mr.ZheeV) and Kalimantan Utara
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24208 |
| Bugzilla | 286381 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 609e8c7a932f28b7… |
| Advisory | Apple Advisory |
Root Cause Analysis
A permissions issue was addressed with additional restrictions.
Files Changed
Source Files
Source/WebKit/UIProcess/WebPageProxy.cppSource/WebKit/UIProcess/WebPageProxy.h
Test Files
Tools/TestWebKitAPI/Tests/WebKitCocoa/OpenAndCloseWindow.mm
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Francisco Alonso (@revskills), and an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24209 |
| Bugzilla | 286462 |
| Component | WebCore |
| Bug Class | IntegerOverflow |
| Severity | medium |
| Commit | 575e5800d5bb2215… |
| Advisory | Apple Advisory |
Root Cause Analysis
A buffer overflow issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/css/parser/CSSParserFastPaths.cpp
Test Files
LayoutTests/fast/css/transform-translate-parsing-crash-expected.txtLayoutTests/fast/css/transform-translate-parsing-crash.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Paul Bakker of ParagonERP
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24216 |
| Bugzilla | 284055 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | b879a659b19009b9… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/css/CSSSelector.hSource/WebCore/css/CSSStyleSheet.cppSource/WebCore/css/SelectorChecker.cppSource/WebCore/css/StyleSheetContents.hSource/WebCore/style/RuleSetBuilder.cppSource/WebCore/style/RuleSetBuilder.h
Test Files
LayoutTests/fast/selectors/has-nesting-crash-expected.txtLayoutTests/fast/selectors/has-nesting-crash.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: Gary Kwong, and an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24264 |
| Bugzilla | 285892 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 71951f425f93be30… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may be able to track users in Safari private browsing mode
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2025-30425 |
| Bugzilla | 286580 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | df02f84bef7163f3… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cppSource/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.h
Test Files
LayoutTests/http/tests/media/clearkey/clear-key-session-id-expected.txtLayoutTests/http/tests/media/clearkey/clear-key-session-id.html
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected Safari crash
Researchers: rheza (@ginggilBesel)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-30427 |
| Bugzilla | 285643 |
| Component | JSC |
| Bug Class | UAF |
| Severity | medium |
| Commit | d7bd7d8f7cdf153d… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/JavaScriptCore/bytecode/Repatch.cpp
Test Files
JSTests/stress/static-private-fields-dont-need-property-conditions.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: A website may be able to bypass Same Origin Policy
Researchers: Jaydev Ahire, @RenwaX23
| Attribute | Value |
|---|---|
| CVE | CVE-2025-30466 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | CrossOrigin |
| Severity | high |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a malicious website may lead to address bar spoofing
Researchers: @RenwaX23
| Attribute | Value |
|---|---|
| CVE | CVE-2025-30467 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A website may be able to access sensor information without user consent
Researchers: Jaydev Ahire
| Attribute | Value |
|---|---|
| CVE | CVE-2025-31192 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Maliciously crafted web content may be able to break out of Web Content sandbox. This is a supplementary fix for an attack that was blocked in iOS 17.2. (Apple is aware of a report that this issue may have been exploited in an extremely sophisticated attack against specific targeted individuals on versions of iOS before iOS 17.2.)
Researchers: Apple
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24201 |
| Bugzilla | 285858 |
| Component | WebKit |
| Bug Class | OOB |
| Severity | medium |
| Commit | 7d784721e440d049… |
| Advisory | Apple Advisory |
Root Cause Analysis
An out-of-bounds write issue was addressed with improved checks to prevent unauthorized actions.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a malicious website may lead to user interface spoofing
Researchers: @RenwaX23
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24113 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved UI.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a malicious website may lead to address bar spoofing
Researchers: @RenwaX23
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24128 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed by adding additional logic.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A maliciously crafted webpage may be able to fingerprint the user
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24143 |
| Bugzilla | 283117 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 5867423d3c559666… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved access restrictions to the file system.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Copying a URL from Web Inspector may lead to command injection
Researchers: Johan Carlsson (joaxcar)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24150 |
| Bugzilla | 283718 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | fed47c6e0559b588… |
| Advisory | Apple Advisory |
Root Cause Analysis
A privacy issue was addressed with improved handling of files.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing web content may lead to a denial-of-service
Researchers: Q1IQ (@q1iqF) of NUS CuriOSity and P1umer (@p1umer) of Imperial Global Singapore
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24158 |
| Bugzilla | 283889 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | bfe3f27cc9be546f… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: linjy of HKUS3Lab and chluo of WHUSecLab
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24162 |
| Bugzilla | 284159 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | c7d10c6fc5fa4308… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious app may be able to bypass browser extension authentication
Researchers: Josh Parnham (@joshparnham)
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24169 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | high |
| Advisory | Apple Advisory |
Root Cause Analysis
A logging issue was addressed with improved data redaction.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2025-24189 |
| Bugzilla | 284332 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 9cee5daeabd138d0… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: On a device with Private Relay enabled, adding a website to the Safari Reading List may reveal the originating IP address to the website
Researchers: Jacob Braun
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44246 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved routing of Safari-originated requests.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Seunghyun Lee
| Attribute | Value |
|---|---|
| CVE | CVE-2024-54479 |
| Bugzilla | 278497 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 60532cbe64e57216… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Brendon Tiszka of Google Project Zero
| Attribute | Value |
|---|---|
| CVE | CVE-2024-54502 |
| Bugzilla | 281912 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | a5aab1fd879a56b6… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Gary Kwong
| Attribute | Value |
|---|---|
| CVE | CVE-2024-54505 |
| Bugzilla | 282661 |
| Component | JSC |
| Bug Class | TypeConfusion |
| Severity | medium |
| Commit | 2d5e29d47324834c… |
| Advisory | Apple Advisory |
Root Cause Analysis
A type confusion issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/dfg/DFGBackwardsPropagationPhase.cpp
Test Files
JSTests/stress/string-add-conversion-unused.js
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Xiangwei Zhang of Tencent Security YUNDING LAB, linjy of HKUS3Lab and chluo of WHUSecLab, and an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2024-54508 |
| Bugzilla | 282180 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | a786924faa7f8ca0… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Tashita Software Security
| Attribute | Value |
|---|---|
| CVE | CVE-2024-54534 |
| Bugzilla | 277967 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | ccef7b85cc9b91a1… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Private Browsing tabs may be accessed without authentication
Researchers: Rei (@reizydev), Kenneth Chew
| Attribute | Value |
|---|---|
| CVE | CVE-2024-54542 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
An authentication issue was addressed with improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to memory corruption
Researchers: Lukas Bernhard, Gary Kwong, and an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2024-54543 |
| Bugzilla | 282450 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | c4bc08c26ba9c8b7… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to arbitrary code execution. Apple is aware of a report that this issue may have been actively exploited on Intel-based Mac systems.
Researchers: Clément Lecigne and Benoît Sevens of Google’s Threat Analysis Group
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44308 |
| Bugzilla | 283063 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | critical |
| Commit | 82abacffb221fb67… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to a cross site scripting attack. Apple is aware of a report that this issue may have been actively exploited on Intel-based Mac systems.
Researchers: Clément Lecigne and Benoît Sevens of Google’s Threat Analysis Group
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44309 |
| Bugzilla | 283095 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 3845740eb3e24283… |
| Advisory | Apple Advisory |
Root Cause Analysis
A cookie management issue was addressed with improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Cookies belonging to one origin may be sent to another origin
Researchers: Wojciech Regula of SecuRing (
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44212 |
| Bugzilla | 279226 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 11494e6772915212… |
| Advisory | Apple Advisory |
Root Cause Analysis
A cookie management issue was addressed with improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Private browsing may leak some browsing history
Researchers: Lucas Di Tomase
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44229 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
An information leakage was addressed with additional validation.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: an anonymous researcher, Q1IQ (@q1iqF) and P1umer (@p1umer)
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44244 |
| Bugzilla | 279780 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 33330e8a218db45a… |
| Advisory | Apple Advisory |
Root Cause Analysis
A memory corruption issue was addressed with improved input validation.
Overview
Advisory: Apple Security Advisory
Impact:
Description: An attacker may be able to misuse a trust relationship to download malicious content
Researchers: Narendra Bhati, Manager of Cyber Security at Suma Soft Pvt. Ltd, Pune (India)
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44259 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may prevent Content Security Policy from being enforced
Researchers: Narendra Bhati, Manager of Cyber Security at Suma Soft Pvt. Ltd, Pune (India)
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44296 |
| Bugzilla | 278765 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | a946a67312c65fb9… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to universal cross site scripting
Researchers: Ron Masas
| Attribute | Value |
|---|---|
| CVE | CVE-2024-40857 |
| Bugzilla | 268724 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | a350c1e9191addf5… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a malicious website may lead to address bar spoofing
Researchers: Hafiizh and YoKo Kho (@yokoacc) of HakTrak
| Attribute | Value |
|---|---|
| CVE | CVE-2024-40866 |
| Bugzilla | 279451 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 07e51b93d7e7d766… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved UI.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Maliciously crafted web content may violate iframe sandboxing policy
Researchers: Narendra Bhati, Manager of Cyber Security at Suma Soft Pvt. Ltd, Pune (India)
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44155 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | SandboxEscape |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A custom URL scheme handling issue was addressed with improved input validation.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may exfiltrate data cross-origin
Researchers: Narendra Bhati, Manager of Cyber Security at Suma Soft Pvt. Ltd, Pune (India)
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44187 |
| Bugzilla | 279452 |
| Component | WebKit |
| Bug Class | CrossOrigin |
| Severity | medium |
| Commit | 99ec4582f9e47c6c… |
| Advisory | Apple Advisory |
Root Cause Analysis
A cross-origin issue existed with “iframe” elements. This was addressed with improved tracking of security origins.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Tashita Software Security
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44192 |
| Bugzilla | 268770 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | fe9dc550d9a039a1… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Private Browsing tabs may be accessed without authentication
Researchers: Kenneth Chew
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44202 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
An authentication issue was addressed with improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may exfiltrate data cross-origin
Researchers: Narendra Bhati, Manager of Cyber Security At Suma Soft Pvt. Ltd, Pune (India)
| Attribute | Value |
|---|---|
| CVE | CVE-2024-54467 |
| Bugzilla | 287874 |
| Component | WebKit |
| Bug Class | CrossOrigin |
| Severity | medium |
| Commit | 70ecdca2d1973537… |
| Advisory | Apple Advisory |
Root Cause Analysis
A cookie management issue was addressed with improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Huang Xilin of Ant Group Light-Year Security Lab
| Attribute | Value |
|---|---|
| CVE | CVE-2024-40776 |
| Bugzilla | 273176 |
| Component | WebKit |
| Bug Class | UAF |
| Severity | medium |
| Commit | d86fef64a7c35672… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebGPU/WGSL/AST/ASTCallExpression.hSource/WebGPU/WGSL/GlobalVariableRewriter.cpp
Patch Preview
diff --git a/Source/WebGPU/WGSL/AST/ASTCallExpression.h b/Source/WebGPU/WGSL/AST/ASTCallExpression.h
index 7abadd2d3217..0a85ce277959 100644
--- a/Source/WebGPU/WGSL/AST/ASTCallExpression.h
+++ b/Source/WebGPU/WGSL/AST/ASTCallExpression.h
@@ -28,6 +28,7 @@
#include "ASTExpression.h"
namespace WGSL {
+class RewriteGlobalVariables;
class TypeChecker;
namespace AST {
@@ -39,6 +40,7 @@ namespace AST {
class CallExpression final : public Expression {
WGSL_AST_BUILDER_NODE(CallExpression);
+ friend RewriteGlobalVariables;
friend TypeChecker;
public:
diff --git a/Source/WebGPU/WGSL/GlobalVariableRewriter.cpp b/Source/WebGPU/WGSL/GlobalVariableRewriter.cpp
index edf73a1f6ce9..4dd9180b9f04 100644
--- a/Source/WebGPU/WGSL/GlobalVariableRewriter.cpp
+++ b/Source/WebGPU/WGSL/GlobalVariableRewriter.cpp
@@ -114,13 +114,12 @@ class RewriteGlobalVariables : public AST::Visitor {
AST::Expression& bufferLengthType();
AST::Expression& bufferLengthReferenceType();
- // atomics
- void initializeAtomics(AST::Function&, const UsedPrivateGlobals&, size_t);
+ // zero initialization
+ void initializeVariables(AST::Function&, const UsedPrivateGlobals&, size_t);
void insertWorkgroupBarrier(AST::Function&, size_t);
AST::Identifier& findOrInsertLocalInvocationIndex(AST::Function&);
- AST::Statement::List atomicStoreInitialValue(const UsedPrivateGlobals&);
- void atomicStoreInitialValue(AST::Expression&, AST::Statement::List&, unsigned);
- bool containsAtomic(const Type*);
+ AST::Statement::List storeInitialValue(const UsedPrivateGlobals&);
+ void storeInitialValue(AST::Expression&, AST::Statement::List&, unsigned, bool isNested);
void packResource(AST::Variable&);
void packArrayResource(AST::Variable&, const Types::Array*);
@@ -1415,12 +1414,12 @@ void RewriteGlobalVariables::insertLocalDefinitions(AST::Function& function, con
}
auto offset = function.body().statements().size() - initialBodySize;
- initializeAtomics(function, usedPrivateGlobals, offset);
+ initializeVariables(function, usedPrivateGlobals, offset);
}
-void RewriteGlobalVariables::initializeAtomics(AST::Function& function, const UsedPrivateGlobals& globals, size_t offset)
+void RewriteGlobalVariables::initializeVariables(AST::Function& function, const UsedPrivateGlobals& globals, size_t offset)
{
- auto initializations = atomicStoreInitialValue(globals);
+ auto initializations = storeInitialValue(globals);
if (initializations.isEmpty())
return;
@@ -1511,43 +1510,53 @@ AST::Identifier& RewriteGlobalVariables::findOrInsertLocalInvocationIndex(AST::F
return parameter.name();
}
-AST::Statement::List RewriteGlobalVariables::atomicStoreInitialValue(const UsedPrivateGlobals& globals)
+AST::Statement::List RewriteGlobalVariables::storeInitialValue(const UsedPrivateGlobals& globals)
{
AST::Statement::List statements;
for (auto* global : globals) {
auto& variable = *global->declaration;
- auto* type = variable.storeType();
- if (!containsAtomic(type))
+
+ if (auto addressSpace = variable.addressSpace(); !addressSpace.has_value() || *addressSpace != AddressSpace::Workgroup)
continue;
+ auto* type = variable.storeType();
auto& target = m_callGraph.ast().astBuilder().construct<AST::IdentifierExpression>(
SourceSpan::empty(),
AST::Identifier::make(variable.name().id())
);
target.m_inferredType = type;
- atomicStoreInitialValue(target, statements, 0);
+ storeInitialValue(target, statements, 0, false);
}
return statements;
}
-bool RewriteGlobalVariables::containsAtomic(const Type* type)
+void RewriteGlobalVariables::storeInitialValue(AST::Expression& target, AST::Statement::List& statements, unsigned arrayDepth, bool isNested)
{
- if (std::holds_alternative<Types::Atomic>(*type))
- return true;
- if (auto* arrayType = std::get_if<Types::Array>(type))
- return containsAtomic(arrayType->element);
- if (auto* structType = std::get_if<Types::Struct>(type)) {
- for (const auto& [_, fieldType] : structType->fields) {
- if (containsAtomic(fieldType))
- return true;
- }
- return false;
- }
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Huang Xilin of Ant Group Light-Year Security Lab
| Attribute | Value |
|---|---|
| CVE | CVE-2024-40779 |
| Bugzilla | 275431 |
| Component | WebKit |
| Bug Class | OOB |
| Severity | medium |
| Commit | ee1d490ee70c84af… |
| Advisory | Apple Advisory |
Root Cause Analysis
An out-of-bounds read was addressed with improved bounds checking.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Huang Xilin of Ant Group Light-Year Security Lab
| Attribute | Value |
|---|---|
| CVE | CVE-2024-40780 |
| Bugzilla | 275273 |
| Component | WebKit |
| Bug Class | OOB |
| Severity | medium |
| Commit | a0edcb80c674edf6… |
| Advisory | Apple Advisory |
Root Cause Analysis
An out-of-bounds read was addressed with improved bounds checking.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Maksymilian Motyl
| Attribute | Value |
|---|---|
| CVE | CVE-2024-40782 |
| Bugzilla | 268770 |
| Component | WebKit |
| Bug Class | UAF |
| Severity | medium |
| Commit | fe9dc550d9a039a1… |
| Advisory | Apple Advisory |
Root Cause Analysis
A use-after-free issue was addressed with improved memory management.
Files Changed
Source Files
Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/LayerTreeHost.cpp
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to a cross site scripting attack
Researchers: Johan Carlsson (joaxcar)
| Attribute | Value |
|---|---|
| CVE | CVE-2024-40785 |
| Bugzilla | 273805 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 0a279cde8508141b… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Seunghyun Lee (@0x10n) of KAIST Hacking Lab working with Trend Micro Zero Day Initiative
| Attribute | Value |
|---|---|
| CVE | CVE-2024-40789 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | OOB |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
An out-of-bounds access issue was addressed with improved bounds checking.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Private Browsing tabs may be accessed without authentication
Researchers: Matthew Butler
| Attribute | Value |
|---|---|
| CVE | CVE-2024-40794 |
| Bugzilla | 275272 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 46d879894a746bad… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Visiting a website that frames malicious content may lead to UI spoofing
Researchers: Yadhu Krishna M and Narendra Bhati, Manager of Cyber Security At Suma Soft Pvt. Ltd, Pune (India)
| Attribute | Value |
|---|---|
| CVE | CVE-2024-40817 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved UI handling.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
Researchers: Gary Kwong
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44185 |
| Bugzilla | 276097 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | bd43e510a6385840… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A user may be able to bypass some web content restrictions
Researchers: Andreas Jaegersberger and Ro Achterberg
| Attribute | Value |
|---|---|
| CVE | CVE-2024-44206 |
| Bugzilla | 280765 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | high |
| Commit | 4a6ee0b6b1b9292b… |
| Advisory | Apple Advisory |
Root Cause Analysis
An issue in the handling of URL protocols was addressed with improved logic.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to an unexpected process crash
| Attribute | Value |
|---|---|
| CVE | CVE-2024-4558 |
| Bugzilla | 274165 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 80221c156248f327… |
| Advisory | Apple Advisory |
Root Cause Analysis
This is a vulnerability in open source code and Apple Software is among the affected projects. The CVE-ID was assigned by a third party. Learn more about the issue and CVE-ID at cve.org.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing web content may lead to a denial-of-service
Researchers: ajajfxhj
| Attribute | Value |
|---|---|
| CVE | CVE-2024-54551 |
| Bugzilla | 275117 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | e73dfba967ee3b8d… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/platform/audio/PlatformMediaSessionManager.cppSource/WebCore/platform/audio/PlatformMediaSessionManager.hSource/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm
Patch Preview
diff --git a/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp b/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp
index 81dc8e026141..999b08a1e845 100644
--- a/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp
+++ b/Source/WebCore/platform/audio/PlatformMediaSessionManager.cpp
@@ -117,6 +117,11 @@ PlatformMediaSessionManager::PlatformMediaSessionManager()
{
}
+PlatformMediaSessionManager::~PlatformMediaSessionManager()
+{
+ m_taskGroup.cancel();
+}
+
static inline unsigned indexFromMediaType(PlatformMediaSession::MediaType type)
{
return static_cast<unsigned>(type);
@@ -492,7 +497,7 @@ void PlatformMediaSessionManager::sessionCanProduceAudioChanged()
return;
m_alreadyScheduledSessionStatedUpdate = true;
- callOnMainThread([this] {
+ enqueueTaskOnMainThread([this] {
m_alreadyScheduledSessionStatedUpdate = false;
maybeActivateAudioSession();
updateSessionState();
@@ -656,7 +661,7 @@ void PlatformMediaSessionManager::scheduleUpdateSessionState()
return;
m_hasScheduledSessionStateUpdate = true;
- callOnMainThread([this] {
+ enqueueTaskOnMainThread([this] {
updateSessionState();
m_hasScheduledSessionStateUpdate = false;
});
@@ -903,6 +908,13 @@ bool PlatformMediaSessionManager::hasActiveNowPlayingSessionInGroup(MediaSession
return hasActiveNowPlayingSession;
}
+void PlatformMediaSessionManager::enqueueTaskOnMainThread(Function<void()>&& task)
+{
+ callOnMainThread(CancellableTask(m_taskGroup, [task = WTFMove(task)] () mutable {
+ task();
+ }));
+}
+
#if !RELEASE_LOG_DISABLED
WTFLogChannel& PlatformMediaSessionManager::logChannel() const
{
diff --git a/Source/WebCore/platform/audio/PlatformMediaSessionManager.h b/Source/WebCore/platform/audio/PlatformMediaSessionManager.h
index 527d12fff117..e5dd5c0f9503 100644
--- a/Source/WebCore/platform/audio/PlatformMediaSessionManager.h
+++ b/Source/WebCore/platform/audio/PlatformMediaSessionManager.h
@@ -31,6 +31,7 @@
#include "RemoteCommandListener.h"
#include "Timer.h"
#include <wtf/AggregateLogger.h>
+#include <wtf/CancellableTask.h>
#include <wtf/Vector.h>
#include <wtf/WeakHashSet.h>
#include <wtf/WeakPtr.h>
@@ -83,7 +84,7 @@ class PlatformMediaSessionManager
WEBCORE_EXPORT static void setMediaCapabilityGrantsEnabled(bool);
#endif
- virtual ~PlatformMediaSessionManager() = default;
+ virtual ~PlatformMediaSessionManager();
virtual void scheduleSessionStatusUpdate() { }
@@ -227,6 +228,7 @@ class PlatformMediaSessionManager
std::optional<bool> supportsSpatialAudioPlayback() { return m_supportsSpatialAudioPlayback; }
void nowPlayingMetadataChanged(const NowPlayingMetadata&);
+ void enqueueTaskOnMainThread(Function<void()>&&);
private:
friend class Internals;
@@ -260,6 +262,7 @@ class PlatformMediaSessionManager
bool m_hasScheduledSessionStateUpdate { false };
WeakHashSet<NowPlayingMetadataObserver> m_nowPlayingMetadataObservers;
+ TaskCancellationGroup m_taskGroup;
#if ENABLE(WEBM_FORMAT_READER)
static bool m_webMFormatReaderEnabled;
diff --git a/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm b/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm
index 3c4000a571a1..d50c37334a7e 100644
--- a/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm
+++ b/Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm
@@ -270,7 +270,7 @@
void MediaSessionManagerCocoa::scheduleSessionStatusUpdate()
{
- callOnMainThread([this] () mutable {
+ enqueueTaskOnMainThread([this] () mutable {
m_nowPlayingManager->setSupportsSeeking(computeSupportsSeeking());
updateNowPlayingInfo();
@@ -329,7 +329,7 @@
{
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing web content may lead to arbitrary code execution
Researchers: Lukas Bernhard of CISPA Helmholtz Center for Information Security
| Attribute | Value |
|---|---|
| CVE | CVE-2024-27808 |
| Bugzilla | 268221 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | critical |
| Commit | b25150796310098d… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/bytecode/AccessCase.cppSource/JavaScriptCore/bytecode/AccessCase.hSource/JavaScriptCore/bytecode/GetByStatus.cppSource/JavaScriptCore/bytecode/GetterSetterAccessCase.cppSource/JavaScriptCore/bytecode/GetterSetterAccessCase.hSource/JavaScriptCore/bytecode/InlineCacheCompiler.cppSource/JavaScriptCore/bytecode/InlineCacheCompiler.hSource/JavaScriptCore/bytecode/ProxyObjectAccessCase.cppSource/JavaScriptCore/bytecode/ProxyObjectAccessCase.hSource/JavaScriptCore/bytecode/PutByStatus.cppSource/JavaScriptCore/bytecode/StructureStubInfo.cppSource/JavaScriptCore/bytecode/StructureStubInfo.hSource/JavaScriptCore/jit/GCAwareJITStubRoutine.cppSource/JavaScriptCore/jit/GCAwareJITStubRoutine.hSource/JavaScriptCore/jit/JITStubRoutine.cppSource/JavaScriptCore/jit/JITStubRoutine.h
Test Files
JSTests/stress/decouple-calllinkinfo-from-access-case.js
Patch Preview
diff --git a/JSTests/stress/decouple-calllinkinfo-from-access-case.js b/JSTests/stress/decouple-calllinkinfo-from-access-case.js
new file mode 100644
index 000000000000..a7fd1f75b1ab
--- /dev/null
+++ b/JSTests/stress/decouple-calllinkinfo-from-access-case.js
@@ -0,0 +1,96 @@
+// runDefault("--validateOptions=true", "--thresholdForJITSoon=10", "--thresholdForJITAfterWarmUp=10", "--thresholdForOptimizeAfterWarmUp=100", "--thresholdForOptimizeAfterLongWarmUp=100", "--thresholdForOptimizeSoon=100", "--thresholdForFTLOptimizeAfterWarmUp=1000", "--thresholdForFTLOptimizeSoon=1000", "--validateBCE=true")
+
+const ProxyConstructor = Proxy;
+const getPrototypeOf = Object.getPrototypeOf;
+const ReflectGet = Reflect.get;
+const ReflectSet = Reflect.set;
+const ReflectHas = Reflect.has;
+const setPrototypeOf = Object.setPrototypeOf;
+
+function probe(id, value) {
+ let originalPrototype, newPrototype;
+ let handler = {
+ get(target, key, receiver) {
+ if (key === '__proto__' && receiver === value) return originalPrototype;
+ if (receiver === newPrototype) return ReflectGet(target, key);
+ return ReflectGet(target, key, receiver);
+ },
+ set(target, key, value, receiver) {
+ if (receiver === newPrototype) return ReflectSet(target, key, value);
+ return ReflectSet(target, key, value, receiver);
+ },
+ has(target, key) {
+ return ReflectHas(target, key);
+ },
+ };
+
+ try {
+ originalPrototype = getPrototypeOf(value);
+ newPrototype = new ProxyConstructor(originalPrototype, handler);
+ setPrototypeOf(value, newPrototype);
+ } catch (e) {}
+}
+
+probe("v1", "2003629588");
+let v4 = 9150;
+v4--;
+probe("v6", 51828);
+function F7(a9, a10, a11) {
+ if (!new.target) { throw 'must be called with new'; }
+ const v12 = this?.constructor;
+ try { new v12(this, "object", 447824390); } catch (e) {}
+ a11 % a11;
+ this.b = a9;
+ this.g = a10;
+}
+const v15 = new F7("2003629588", "object", 447824390);
+const v16 = new F7(v15, v4, v4);
+const v17 = new F7("2003629588", 51828, 51828);
+probe("v17", v17);
+const v18 = v17?.constructor;
+probe("v18", v18);
+let v19;
+try { v19 = new v18("r", v17, "r"); } catch (e) {}
+probe("v19", v19);
+const v20 = [v17,v17];
+probe("v20", v20);
+const v21 = [F7,v15,v20,v15,v4];
+const v22 = [v4,"object",51828];
+probe("v22", v22);
+let v23;
+try { v23 = v22.reduce(v15); } catch (e) {}
+const v24 = [2,-354747782,-16,10251,-1485280459,5,6,536870888,-47153,-193790246];
+probe("v24", v24);
+function f25(a26, a27) {
+ const o28 = {
+ [a27]: a26,
+ "d": v21,
+ };
+ return o28;
+}
+f25(v16, v22);
+f25(v23, v16);
+f25(v15, v22);
+v24[4];
+function f33(a34, a35, a36, a37) {
+ probe("v36", a36);
+ ~a35;
+ v22.length = 1;
+ a36?.[v21];
+}
+v24.flatMap(f33);
+gc();
+class C20 {
+ valueOf(a22, a23) {
+ return ("n")[1204] - this;
+ }
+}
+const v26 = new C20();
+function f27(a28, a29) {
+ new BigInt64Array(3603);
+ return v26 * v26;
+}
+try {
+v26[Symbol.toPrimitive] = f27;
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing web content may lead to arbitrary code execution
Researchers: Jeff Johnson of underpassapp.com
| Attribute | Value |
|---|---|
| CVE | CVE-2024-27820 |
| Bugzilla | 270139 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | critical |
| Commit | 6a341af34a111bdf… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp
Patch Preview
diff --git a/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp b/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp
index 24352a97dc76..e46f788274a8 100644
--- a/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp
+++ b/Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp
@@ -444,7 +444,8 @@ void InspectorDebuggerAgent::didScheduleAsyncCall(JSC::JSGlobalObject* globalObj
if (!m_currentAsyncCallIdentifierStack.isEmpty()) {
auto it = m_pendingAsyncCalls.find(m_currentAsyncCallIdentifierStack.last());
ASSERT(it != m_pendingAsyncCalls.end());
- parentStackTrace = it->value;
+ if (LIKELY(it != m_pendingAsyncCalls.end()))
+ parentStackTrace = it->value;
}
auto identifier = asyncCallIdentifier(asyncCallType, callbackId);
Overview
Advisory: Apple Security Advisory
Impact:
Description: A maliciously crafted webpage may be able to fingerprint the user
Researchers: Joe Rutkowski (@Joe12387) of Crawless and @abrahamjuliot
| Attribute | Value |
|---|---|
| CVE | CVE-2024-27830 |
| Bugzilla | 271159 |
| Component | WTF |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 89ae804c9d89d646… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Files Changed
Source Files
Source/WTF/wtf/PlatformEnable.h
Patch Preview
diff --git a/Source/WTF/wtf/PlatformEnable.h b/Source/WTF/wtf/PlatformEnable.h
index 38d367cb578c..eef9de469a96 100644
--- a/Source/WTF/wtf/PlatformEnable.h
+++ b/Source/WTF/wtf/PlatformEnable.h
@@ -421,10 +421,6 @@
#define ENABLE_MOUSE_FORCE_EVENTS 1
#endif
-#if !defined(ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE)
-#define ENABLE_NETSCAPE_PLUGIN_METADATA_CACHE 0
-#endif
-
#if !defined(ENABLE_NOTIFICATION_EVENT)
#define ENABLE_NOTIFICATION_EVENT 0
#endif
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to arbitrary code execution
Researchers: Manfred Paul (@_manfp) working with Trend Micro Zero Day Initiative
| Attribute | Value |
|---|---|
| CVE | CVE-2024-27833 |
| Bugzilla | 271491 |
| Component | JSC |
| Bug Class | IntegerOverflow |
| Severity | critical |
| Commit | 1ea4ef8127276fd0… |
| Advisory | Apple Advisory |
Root Cause Analysis
An integer overflow was addressed with improved input validation.
Files Changed
Source Files
Source/JavaScriptCore/b3/B3LowerToAir.cpp
Test Files
JSTests/stress/sbfx-offset-overflow.js
Patch Preview
diff --git a/JSTests/stress/sbfx-offset-overflow.js b/JSTests/stress/sbfx-offset-overflow.js
new file mode 100644
index 000000000000..9d7f7cd7790a
--- /dev/null
+++ b/JSTests/stress/sbfx-offset-overflow.js
@@ -0,0 +1,16 @@
+function foo(a,b,c) { let x = a | 0; let y = b | 0; let z = c &15;
+z = (x<<y)^(x<<(y&0x10ff)); let r = z^0xf01;
+let s = z^0xf1f;
+return (((a>>>r)<<s)>>s);
+}
+let LEN = 100000000-1;
+let res = 0;
+res = foo((LEN&127),456,789);
+
+if (res != -1)
+ throw "Wrong result: " + res
+
+for (let i = 0; i <= LEN; i++) res = foo((i&127),456,789);
+
+if (res != -1)
+ throw "Wrong result: " + res
\ No newline at end of file
diff --git a/Source/JavaScriptCore/b3/B3LowerToAir.cpp b/Source/JavaScriptCore/b3/B3LowerToAir.cpp
index 33adcbd1c25a..e8ff89dc84c7 100644
--- a/Source/JavaScriptCore/b3/B3LowerToAir.cpp
+++ b/Source/JavaScriptCore/b3/B3LowerToAir.cpp
@@ -3301,7 +3301,8 @@ class LowerToAir {
return false;
uint64_t width = WTF::bitCount(mask);
uint64_t datasize = opcode == ExtractUnsignedBitfield32 ? 32 : 64;
- if (lsb + width > datasize)
+ uint64_t resultDataSize = 0;
+ if (!WTF::safeAdd(lsb, width, resultDataSize) || resultDataSize > datasize)
return false;
append(opcode, tmp(srcValue), imm(lsbValue), imm(width), tmp(m_value));
@@ -3390,9 +3391,8 @@ class LowerToAir {
uint64_t highWidth = highWidthValue->asInt();
uint64_t lowWidth = lowWidthValue->asInt();
uint64_t datasize = opcode == ExtractRegister32 ? 32 : 64;
- // Note that when `lowWidth == datasize` we cannot turn it to `MOV Rd Rn` since
- // `m >>> lowWidth` means `m >>> (lowWidth % datasize)` in JavaScript.
- if (lowWidth + highWidth != datasize || maskBitCount != lowWidth || lowWidth == datasize)
+ uint64_t resultWidth = 0;
+ if (!WTF::safeAdd(lowWidth, highWidth, resultWidth) || resultWidth != datasize || maskBitCount != lowWidth || lowWidth == datasize)
return false;
ASSERT(lowWidth < datasize);
@@ -3429,7 +3429,8 @@ class LowerToAir {
return false;
uint64_t datasize = opcode == InsertBitField32 ? 32 : 64;
uint64_t width = WTF::bitCount(mask1);
- if (lsb + width > datasize)
+ uint64_t resultDataSize = 0;
+ if (!WTF::safeAdd(lsb, width, resultDataSize) || resultDataSize > datasize)
return false;
uint64_t mask2 = maskValue2->asInt();
@@ -3479,7 +3480,8 @@ class LowerToAir {
return false;
uint64_t width = WTF::bitCount(mask1);
uint64_t datasize = opcode == ExtractInsertBitfieldAtLowEnd32 ? 32 : 64;
- if (lsb + width > datasize)
+ uint64_t resultDataSize = 0;
+ if (!WTF::safeAdd(lsb, width, resultDataSize) || resultDataSize > datasize)
return false;
uint64_t mask2 = maskValue2->asInt();
@@ -3653,7 +3655,8 @@ class LowerToAir {
uint64_t width = WTF::bitCount(mask);
uint64_t datasize = opcode == InsertUnsignedBitfieldInZero32 ? 32 : 64;
- if (lsb + width > datasize)
+ uint64_t resultDataSize = 0;
+ if (!WTF::safeAdd(lsb, width, resultDataSize) || resultDataSize > datasize)
return false;
append(opcode, tmp(nValue), imm(right), imm(width), tmp(m_value));
@@ -3715,8 +3718,13 @@ class LowerToAir {
uint64_t amount2 = amount2Value->asInt();
uint64_t lsb = lsbValue->asInt();
uint64_t datasize = opcode == InsertSignedBitfieldInZero32 ? 32 : 64;
+
+ if (amount1 >= datasize)
+ return false;
+
uint64_t width = datasize - amount1;
- if (amount1 != amount2 || !width || lsb + width > datasize)
+ uint64_t resultDataSize = 0;
+ if (!WTF::safeAdd(lsb, width, resultDataSize) || amount1 != amount2 || !width || resultDataSize > datasize)
return false;
append(opcode, tmp(srcValue), imm(lsbValue), imm(width), tmp(m_value));
@@ -3763,8 +3771,13 @@ class LowerToAir {
uint64_t amount2 = amount2Value->asInt();
uint64_t lsb = lsbValue->asInt();
uint64_t datasize = opcode == ExtractSignedBitfield32 ? 32 : 64;
+
+ if (amount1 >= datasize)
Overview
Advisory: Apple Security Advisory
Impact:
Description: An attacker with arbitrary read and write capability may be able to bypass Pointer Authentication
Researchers: Manfred Paul (@_manfp) working with Trend Micro’s Zero Day Initiative
| Attribute | Value |
|---|---|
| CVE | CVE-2024-27834 |
| Bugzilla | 272750 |
| Component | JSC |
| Bug Class | LogicError |
| Severity | high |
| Commit | 3e3d0883c8495547… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Files Changed
Source Files
Source/JavaScriptCore/assembler/MacroAssemblerARM64E.hSource/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cppSource/JavaScriptCore/jit/ThunkGenerators.cppSource/JavaScriptCore/llint/LLIntThunks.cppSource/JavaScriptCore/runtime/Options.cppSource/JavaScriptCore/runtime/OptionsList.hSource/WTF/wtf/PtrTag.hSource/WebKit/WebProcess/WebProcess.cppTools/Scripts/run-jsc-stress-tests
Patch Preview
diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARM64E.h b/Source/JavaScriptCore/assembler/MacroAssemblerARM64E.h
index 6925f04bc3d6..3f9233b2de58 100644
--- a/Source/JavaScriptCore/assembler/MacroAssemblerARM64E.h
+++ b/Source/JavaScriptCore/assembler/MacroAssemblerARM64E.h
@@ -65,6 +65,12 @@ class MacroAssemblerARM64E : public MacroAssemblerARM64 {
ALWAYS_INLINE void tagPtr(PtrTag tag, RegisterID target)
{
+ if (!tag) {
+ m_assembler.pacizb(target);
+ return;
+ }
+
+ RELEASE_ASSERT(Options::allowNonSPTagging());
auto tagGPR = getCachedDataTempRegisterIDAndInvalidate();
move(TrustedImm64(tag), tagGPR);
m_assembler.pacib(target, tagGPR);
@@ -76,11 +82,17 @@ class MacroAssemblerARM64E : public MacroAssemblerARM64 {
m_assembler.pacibsp();
return;
}
+ RELEASE_ASSERT(Options::allowNonSPTagging());
m_assembler.pacib(target, tag);
}
ALWAYS_INLINE void untagPtr(PtrTag tag, RegisterID target)
{
+ if (!tag) {
+ m_assembler.autizb(target);
+ return;
+ }
+
auto tagGPR = getCachedDataTempRegisterIDAndInvalidate();
move(TrustedImm64(tag), tagGPR);
m_assembler.autib(target, tagGPR);
diff --git a/Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp b/Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp
index 4e0d005cc08a..a597735bfaf7 100644
--- a/Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp
+++ b/Source/JavaScriptCore/dfg/DFGOSRExitCompilerCommon.cpp
@@ -254,6 +254,16 @@ void reifyInlinedCallFrames(CCallHelpers& jit, const OSRExitBase& exit)
ASSERT(JITCode::isBaselineCode(jit.baselineCodeBlock()->jitType()));
jit.storePtr(AssemblyHelpers::TrustedImmPtr(jit.baselineCodeBlock()), AssemblyHelpers::addressFor(CallFrameSlot::codeBlock));
+ GPRReg returnPCReg = GPRInfo::regT5;
+#if CPU(ARM64E)
+ GPRReg signingTagReg = GPRInfo::regT2;
+ if (!Options::allowNonSPTagging()) {
+ returnPCReg = ARM64Registers::lr;
+ signingTagReg = MacroAssembler::stackPointerRegister;
+ // We could save/restore lr here but we don't need to because the LLInt/Baseline will load it from the stack before returning anyway.
+ }
+#endif
+
const CodeOrigin* codeOrigin;
for (codeOrigin = &exit.m_codeOrigin; codeOrigin && codeOrigin->inlineCallFrame(); codeOrigin = codeOrigin->inlineCallFrame()->getCallerSkippingTailCalls()) {
InlineCallFrame* inlineCallFrame = codeOrigin->inlineCallFrame();
@@ -266,15 +276,25 @@ void reifyInlinedCallFrames(CCallHelpers& jit, const OSRExitBase& exit)
if (!trueCaller) {
ASSERT(inlineCallFrame->isTail());
- jit.loadPtr(AssemblyHelpers::Address(GPRInfo::callFrameRegister, CallFrame::returnPCOffset()), GPRInfo::regT3);
+ jit.loadPtr(AssemblyHelpers::Address(GPRInfo::callFrameRegister, CallFrame::returnPCOffset()), returnPCReg);
#if CPU(ARM64E)
+ if (!Options::allowNonSPTagging()) {
+ JIT_COMMENT(jit, "lldb dynamic execution / posix signals could trash your stack"); // We don't have to worry about signals because they shouldn't fire in WebContent process in this window.
+ jit.move(MacroAssembler::stackPointerRegister, GPRInfo::regT4);
+ }
+
jit.addPtr(AssemblyHelpers::TrustedImm32(sizeof(CallerFrameAndPC)), GPRInfo::callFrameRegister, GPRInfo::regT2);
- jit.untagPtr(GPRInfo::regT2, GPRInfo::regT3);
- jit.addPtr(AssemblyHelpers::TrustedImm32(inlineCallFrame->returnPCOffset() + sizeof(void*)), GPRInfo::callFrameRegister, GPRInfo::regT2);
- jit.validateUntaggedPtr(GPRInfo::regT3, GPRInfo::regT4);
- jit.tagPtr(GPRInfo::regT2, GPRInfo::regT3);
+ jit.untagPtr(GPRInfo::regT2, returnPCReg);
+ jit.validateUntaggedPtr(returnPCReg, GPRInfo::regT2);
+ jit.addPtr(AssemblyHelpers::TrustedImm32(inlineCallFrame->returnPCOffset() + sizeof(CPURegister)), GPRInfo::callFrameRegister, signingTagReg);
+ jit.tagPtr(signingTagReg, returnPCReg);
+
+ if (!Options::allowNonSPTagging()) {
+ JIT_COMMENT(jit, "lldb dynamic execution / posix signals are ok again");
+ jit.move(GPRInfo::regT4, MacroAssembler::stackPointerRegister);
+ }
#endif
- jit.storePtr(GPRInfo::regT3, AssemblyHelpers::addressForByteOffset(inlineCallFrame->returnPCOffset()));
+ jit.storePtr(returnPCReg, AssemblyHelpers::addressForByteOffset(inlineCallFrame->returnPCOffset()));
jit.loadPtr(AssemblyHelpers::Address(GPRInfo::callFrameRegister, CallFrame::callerFrameOffset()), GPRInfo::regT3);
callerFrameGPR = GPRInfo::regT3;
} else {
@@ -291,10 +311,20 @@ void reifyInlinedCallFrames(CCallHelpers& jit, const OSRExitBase& exit)
}
#if CPU(ARM64E)
- jit.addPtr(AssemblyHelpers::TrustedImm32(inlineCallFrame->returnPCOffset() + sizeof(void*)), GPRInfo::callFrameRegister, GPRInfo::regT2);
- jit.move(AssemblyHelpers::TrustedImmPtr(jumpTarget.untaggedPtr()), GPRInfo::regT4);
- jit.tagPtr(GPRInfo::regT2, GPRInfo::regT4);
- jit.storePtr(GPRInfo::regT4, AssemblyHelpers::addressForByteOffset(inlineCallFrame->returnPCOffset()));
+ if (!Options::allowNonSPTagging()) {
+ JIT_COMMENT(jit, "lldb dynamic execution / posix signals could trash your stack"); // We don't have to worry about signals because they shouldn't fire in WebContent process in this window.
+ jit.move(MacroAssembler::stackPointerRegister, GPRInfo::regT4);
+ }
Overview
Advisory: Apple Security Advisory
Impact:
Description: A maliciously crafted webpage may be able to fingerprint the user
Researchers: Emilio Cobos of Mozilla
| Attribute | Value |
|---|---|
| CVE | CVE-2024-27838 |
| Bugzilla | 262337 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | fe6383eb455a364c… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed by adding additional logic.
Files Changed
Test Files
LayoutTests/swipe/resources/swipe-test.jsLayoutTests/swipe/swipe-back-with-active-wheel-listener-expected.txtLayoutTests/swipe/swipe-back-with-passive-wheel-listener-expected.txtLayoutTests/swipe/wheel-prevent-default-prevents-swipe-back-expected.txt
Patch Preview
diff --git a/LayoutTests/swipe/resources/swipe-test.js b/LayoutTests/swipe/resources/swipe-test.js
index a32ba832493c..132f6c9c6c7f 100644
--- a/LayoutTests/swipe/resources/swipe-test.js
+++ b/LayoutTests/swipe/resources/swipe-test.js
@@ -46,6 +46,8 @@ async function startSlowSwipeGesture()
if (!window.eventSender)
return;
+ log("startSlowSwipeGesture");
+
await UIHelper.ensurePresentationUpdate();
// Similar to uiController.beginBackSwipe(), but with a gap between events to allow
diff --git a/LayoutTests/swipe/swipe-back-with-active-wheel-listener-expected.txt b/LayoutTests/swipe/swipe-back-with-active-wheel-listener-expected.txt
index 8215851db5ff..fd5b55d8f959 100644
--- a/LayoutTests/swipe/swipe-back-with-active-wheel-listener-expected.txt
+++ b/LayoutTests/swipe/swipe-back-with-active-wheel-listener-expected.txt
@@ -1,4 +1,5 @@
Swipe target
+startSlowSwipeGesture
didBeginSwipe
completeSwipeGesture
willEndSwipe
diff --git a/LayoutTests/swipe/swipe-back-with-passive-wheel-listener-expected.txt b/LayoutTests/swipe/swipe-back-with-passive-wheel-listener-expected.txt
index 6bd807db86af..fd5b55d8f959 100644
--- a/LayoutTests/swipe/swipe-back-with-passive-wheel-listener-expected.txt
+++ b/LayoutTests/swipe/swipe-back-with-passive-wheel-listener-expected.txt
@@ -1,5 +1,5 @@
Swipe target
-startSwipeGesture
+startSlowSwipeGesture
didBeginSwipe
completeSwipeGesture
willEndSwipe
diff --git a/LayoutTests/swipe/wheel-prevent-default-prevents-swipe-back-expected.txt b/LayoutTests/swipe/wheel-prevent-default-prevents-swipe-back-expected.txt
index e7a0ac32652b..975b6f62289c 100644
--- a/LayoutTests/swipe/wheel-prevent-default-prevents-swipe-back-expected.txt
+++ b/LayoutTests/swipe/wheel-prevent-default-prevents-swipe-back-expected.txt
@@ -1,3 +1,4 @@
Swipe target
+startSlowSwipeGesture
completeSwipeGesture
Overview
Advisory: Apple Security Advisory
Impact:
Description: A website’s permission dialog may persist after navigation away from the site
Researchers: Narendra Bhati of Suma Soft Pvt. Ltd in Pune (India), Shaheen Fazim
| Attribute | Value |
|---|---|
| CVE | CVE-2024-27844 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A maliciously crafted webpage may be able to fingerprint the user
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2024-27850 |
| Bugzilla | 270767 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | a451fac2e9034eaf… |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed with improvements to the noise injection algorithm.
Files Changed
Source Files
Source/WebKit/ChangeLogSource/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
Patch Preview
diff --git a/Source/WebKit/ChangeLog b/Source/WebKit/ChangeLog
index 30328cf6e845..c83f5658a6fb 100644
--- a/Source/WebKit/ChangeLog
+++ b/Source/WebKit/ChangeLog
@@ -1,3 +1,13 @@
+2020-12-14 Carlos Garcia Campos <[email protected]>
+
+ [WPE][GTK] Should enable WebProcessCache
+ https://bugs.webkit.org/show_bug.cgi?id=219689
+
+ Reviewed by Adrian Perez de Castro.
+
+ * UIProcess/API/glib/WebKitWebContext.cpp:
+ (webkitWebContextConstructed):
+
2020-12-13 Yusuke Suzuki <[email protected]>
[JSC] Introduce vmEntryCustomAccessor and vmEntryHostFunction for JITCage
diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
index f7faa5880bf0..acf9ccdb6d12 100644
--- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
+++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp
@@ -391,6 +391,7 @@ static void webkitWebContextConstructed(GObject* object)
API::ProcessPoolConfiguration configuration;
configuration.setInjectedBundlePath(FileSystem::stringFromFileSystemRepresentation(bundleFilename.get()));
+ configuration.setUsesWebProcessCache(true);
#if PLATFORM(GTK)
configuration.setProcessSwapsOnNavigation(priv->psonEnabled);
#if !USE(GTK4)
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to arbitrary code execution
Researchers: Nan Wang (@eternalsakura13) of 360 Vulnerability Research Institute
| Attribute | Value |
|---|---|
| CVE | CVE-2024-27851 |
| Bugzilla | 272106 |
| Component | WebCore |
| Bug Class | OOB |
| Severity | critical |
| Commit | f93441ff7ade8faf… |
| Advisory | Apple Advisory |
Root Cause Analysis
The ControlStates class wrapped an OptionSet<States> with a uint16_t enum and was passed by reference through the theme rendering pipeline. Platform-specific RenderTheme implementations used the internal state bitmask to index into style lookup tables without proper bounds validation. When rendering form controls (checkboxes, inputs, options) with certain state combinations, the computed index could exceed the lookup table bounds, causing an out-of-bounds read. The fix deletes the ControlStates wrapper entirely and replaces it with OptionSet<ControlStyle::State>, which is passed by value and eliminates the unsafe reference-based access pattern.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing a file may lead to unexpected app termination or arbitrary code execution
Researchers: Maksymilian Motyl of Immunity Systems, Junsung Lee working with Trend Micro Zero Day Initiative, and ajajfxhj
| Attribute | Value |
|---|---|
| CVE | CVE-2024-27856 |
| Bugzilla | 268765 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | critical |
| Commit | 0d0caf9579718608… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved checks.
Files Changed
Source Files
Source/WebCore/dom/ContainerNode.cpp
Test Files
LayoutTests/fast/dom/set-attribute-and-normalize-in-event-expected.txtLayoutTests/fast/dom/set-attribute-and-normalize-in-event.html
Patch Preview
diff --git a/LayoutTests/fast/dom/set-attribute-and-normalize-in-event-expected.txt b/LayoutTests/fast/dom/set-attribute-and-normalize-in-event-expected.txt
new file mode 100644
index 000000000000..74c1f9350acf
--- /dev/null
+++ b/LayoutTests/fast/dom/set-attribute-and-normalize-in-event-expected.txt
@@ -0,0 +1,3 @@
+CONSOLE MESSAGE: RangeError: Maximum call stack size exceeded.
+CONSOLE MESSAGE: RangeError: Maximum call stack size exceeded.
+
diff --git a/LayoutTests/fast/dom/set-attribute-and-normalize-in-event.html b/LayoutTests/fast/dom/set-attribute-and-normalize-in-event.html
new file mode 100644
index 000000000000..5ec7cdccafa5
--- /dev/null
+++ b/LayoutTests/fast/dom/set-attribute-and-normalize-in-event.html
@@ -0,0 +1,17 @@
+<script>
+ function runTest() {
+ if (window.testRunner)
+ window.testRunner.dumpAsText();
+
+ marqueeElement.addEventListener("DOMSubtreeModified", () => {
+ try { hrElement.before(hrElement); } catch (e) { }
+ marqueeElement.normalize();
+ });
+
+ marqueeElement.setAttribute("a", "");
+ }
+</script>
+
+<body onload=runTest()>
+ <marquee id="marqueeElement">
+ <hr id="hrElement" width="1"></hr>
diff --git a/Source/WebCore/dom/ContainerNode.cpp b/Source/WebCore/dom/ContainerNode.cpp
index 30c7e9e66ba8..d3372f8d09d1 100644
--- a/Source/WebCore/dom/ContainerNode.cpp
+++ b/Source/WebCore/dom/ContainerNode.cpp
@@ -890,10 +890,11 @@ ExceptionOr<void> ContainerNode::appendChildWithoutPreInsertionValidityCheck(Nod
ExceptionOr<void> ContainerNode::insertChildrenBeforeWithoutPreInsertionValidityCheck(NodeVector&& newChildren, Node* nextChild)
{
+ RefPtr refChild = nextChild;
for (auto& child : newChildren) {
if (RefPtr oldParent = child->parentNode()) {
- if (nextChild == child.ptr())
- nextChild = child->nextSibling();
+ if (refChild.get() == child.ptr())
+ refChild = child->nextSibling();
if (auto result = oldParent->removeChild(child); result.hasException())
return result.releaseException();
}
@@ -910,14 +911,14 @@ ExceptionOr<void> ContainerNode::insertChildrenBeforeWithoutPreInsertionValidity
ChildListMutationScope mutation(*this);
for (auto& child : newChildren) {
- if (nextChild && nextChild->parentNode() != this) // Event listeners moved nextChild elsewhere.
+ if (refChild && refChild->parentNode() != this) // Event listeners moved nextChild elsewhere.
break;
if (child->parentNode()) // Event listeners inserted this child elsewhere.
break;
- executeNodeInsertionWithScriptAssertion(*this, child.get(), nextChild, ChildChange::Source::API, ReplacedAllChildren::No, [&] {
+ executeNodeInsertionWithScriptAssertion(*this, child.get(), refChild.get(), ChildChange::Source::API, ReplacedAllChildren::No, [&] {
child->setTreeScopeRecursively(treeScope());
- if (nextChild)
- insertBeforeCommon(*nextChild, child.get());
+ if (refChild)
+ insertBeforeCommon(*refChild, child.get());
else
appendChildCommon(child);
});
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing an image may lead to arbitrary code execution
Researchers: Nick Galloway of Google Project Zero
| Attribute | Value |
|---|---|
| CVE | CVE-2024-1580 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | OOB |
| Severity | critical |
| Advisory | Apple Advisory |
Root Cause Analysis
An out-of-bounds write issue was addressed with improved input validation.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may exfiltrate audio data cross-origin
Researchers: James Lee (@Windowsrcer)
| Attribute | Value |
|---|---|
| CVE | CVE-2024-23254 |
| Bugzilla | 263795 |
| Component | WebCore |
| Bug Class | CrossOrigin |
| Severity | medium |
| Commit | 26583bfadc4b6606… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved UI handling.
Files Changed
Source Files
Source/WebCore/platform/graphics/coretext/FontCustomPlatformDataCoreText.cpp
Test Files
LayoutTests/TestExpectationsLayoutTests/platform/gtk/TestExpectationsLayoutTests/platform/wpe/TestExpectations
Patch Preview
diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations
index c7a1442ce349..2f79a1e5d51c 100644
--- a/LayoutTests/TestExpectations
+++ b/LayoutTests/TestExpectations
@@ -3711,8 +3711,6 @@ webkit.org/b/219735 imported/w3c/web-platform-tests/css/css-font-loading/fontfac
# @font-face: size-adjust and text-decoration
webkit.org/b/206881 imported/w3c/web-platform-tests/css/css-fonts/size-adjust-text-decoration.tentative.html [ ImageOnlyFailure ]
-# @font-face: size-adjust and optical-size
-webkit.org/b/255862 imported/w3c/web-platform-tests/css/css-fonts/variations/variable-opsz-size-adjust.html [ ImageOnlyFailure ]
# We intentionally do not want to allow disabling required ligatures, so we don't honor this optional test.
imported/w3c/web-platform-tests/css/css-fonts/font-variant-ligatures-11.optional.html [ ImageOnlyFailure ]
diff --git a/LayoutTests/platform/gtk/TestExpectations b/LayoutTests/platform/gtk/TestExpectations
index 6399c3a72d4d..d8915a7e8068 100644
--- a/LayoutTests/platform/gtk/TestExpectations
+++ b/LayoutTests/platform/gtk/TestExpectations
@@ -812,6 +812,9 @@ webkit.org/b/161962 fast/forms/implicit-submission.html [ Failure ]
webkit.org/b/169531 fast/text/font-selection-font-face-parse.html [ Skip ]
+# @font-face: missing integration between size-adjust and optical-size
+ webkit.org/b/256457 imported/w3c/web-platform-tests/css/css-fonts/variations/variable-opsz-size-adjust.html [ ImageOnlyFailure ]
+
# CSS image-orientation is not yet enabled.
webkit.org/b/89052 fast/css/image-orientation [ Skip ]
diff --git a/LayoutTests/platform/wpe/TestExpectations b/LayoutTests/platform/wpe/TestExpectations
index 2d246b5db981..b24120c77621 100644
--- a/LayoutTests/platform/wpe/TestExpectations
+++ b/LayoutTests/platform/wpe/TestExpectations
@@ -771,6 +771,9 @@ webkit.org/b/217370 fast/events/setDragImage-element-non-nullable.html [ Failure
webkit.org/b/256310 imported/w3c/web-platform-tests/css/css-fonts/parsing/font-face-src-tech.html [ Skip ]
+# @font-face: missing integration between size-adjust and optical-size
+ webkit.org/b/256457 imported/w3c/web-platform-tests/css/css-fonts/variations/variable-opsz-size-adjust.html [ ImageOnlyFailure ]
+
# WebXR
webkit.org/b/225483 [ Release ] imported/w3c/web-platform-tests/webxr/events_input_source_recreation.https.html [ Pass ]
webkit.org/b/225483 [ Release ] imported/w3c/web-platform-tests/webxr/events_input_sources_change.https.html [ Pass ]
diff --git a/Source/WebCore/platform/graphics/coretext/FontCustomPlatformDataCoreText.cpp b/Source/WebCore/platform/graphics/coretext/FontCustomPlatformDataCoreText.cpp
index 7fea5f90a5a4..0362bd3efb01 100644
--- a/Source/WebCore/platform/graphics/coretext/FontCustomPlatformDataCoreText.cpp
+++ b/Source/WebCore/platform/graphics/coretext/FontCustomPlatformDataCoreText.cpp
@@ -42,13 +42,13 @@ FontCustomPlatformData::~FontCustomPlatformData() = default;
FontPlatformData FontCustomPlatformData::fontPlatformData(const FontDescription& fontDescription, bool bold, bool italic, const FontCreationContext& fontCreationContext)
{
+ auto size = fontDescription.adjustedSizeForFontFace(fontCreationContext.sizeAdjust());
UnrealizedCoreTextFont unrealizedFont = { RetainPtr { fontDescriptor } };
- unrealizedFont.setSize(fontDescription.computedPixelSize());
+ unrealizedFont.setSize(size);
unrealizedFont.modify([&](CFMutableDictionaryRef attributes) {
addAttributesForWebFonts(attributes, fontDescription.shouldAllowUserInstalledFonts());
});
- auto size = fontDescription.adjustedSizeForFontFace(fontCreationContext.sizeAdjust());
FontOrientation orientation = fontDescription.orientation();
FontWidthVariant widthVariant = fontDescription.widthVariant();
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may prevent Content Security Policy from being enforced
Researchers: Johan Carlsson (joaxcar)
| Attribute | Value |
|---|---|
| CVE | CVE-2024-23263 |
| Bugzilla | 264811 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 15bdd42ec40b5b90… |
| Advisory | Apple Advisory |
Root Cause Analysis
A logic issue was addressed with improved validation.
Files Changed
Source Files
Tools/Scripts/update-angle
Patch Preview
diff --git a/Tools/Scripts/update-angle b/Tools/Scripts/update-angle
index ef380ec9a7f7..d8f402d3a9e8 100755
--- a/Tools/Scripts/update-angle
+++ b/Tools/Scripts/update-angle
@@ -2,6 +2,7 @@
set -e
cd "$(dirname "$0")/../../Source/ThirdParty/ANGLE"
ANGLE_DIR="$PWD"
+ANGLE_TARGET_COMMIT="origin/main"
regenerate_changes_diff() {
echo "Regenerating changes.diff."
@@ -42,11 +43,12 @@ regenerate_program_version_id() {
usage() {
SCRIPT_NAME=$(basename "$0")
- echo "USAGE: $SCRIPT_NAME [-h|--help] -[--regenerate-changes-diff[-main]]"
+ echo "USAGE: $SCRIPT_NAME [-h|--help] -[--regenerate-changes-diff[-main]] [commit]"
echo " -h | --help Print this help message."
echo " --regenerate-changes-diff Regenerate ANGLE changes.diff to last upstream merge."
echo " --regenerate-changes-diff-main Regenerate ANGLE changes.diff to upstream origin/main."
echo " --regenerate-program-version-id Regenerate ANGLE ANGLEShaderProgramVersion.h."
+ echo " commit The ANGLE commit to update to. Defaults to origin/main"
}
if [ ! -z "$1" ] ; then
@@ -90,10 +92,14 @@ if [ ! -z "$1" ] ; then
echo
echo "Success."
exit 0
+
+ elif [ "${1:0:2}" = -- ]; then
+ echo "ERROR: Unrecognized argument: $1"
+ usage
+ exit 1
+ else
+ ANGLE_TARGET_COMMIT="$1"
fi
- echo "ERROR: Unrecognized argument: $1"
- usage
- exit 1
fi
echo "This script helps you update the copy of ANGLE in Source/ThirdParty/ANGLE"
@@ -136,7 +142,7 @@ wait_for_rebase_to_complete() {
cleanup_after_successful_rebase_and_exit() {
cd "$ANGLE_DIR"
echo
- regenerate_changes_diff "origin/main"
+ regenerate_changes_diff "$ANGLE_TARGET_COMMIT"
git --no-pager diff -b --cached "$LAST_ROLL_COMMIT_HASH" -- Compiler.cmake GLESv2.cmake
echo
echo "Rebase complete!"
@@ -155,7 +161,7 @@ cleanup_after_successful_rebase_and_exit() {
echo "Press Enter to continue after fixing build:"
read -r
regenerate_program_version_id
- regenerate_changes_diff "origin/main"
+ regenerate_changes_diff "$ANGLE_TARGET_COMMIT"
echo "Generating contents of commit message into commit-message.txt."
echo "Be sure to copy out this file's contents and delete it before committing."
echo "Update ANGLE to $(git log -1 ${COMMIT_HASH} --format=%cs) (${COMMIT_HASH}))" > commit-message.txt
@@ -196,8 +202,9 @@ cd "$ANGLE_DIR"
echo "Downloading latest ANGLE via git clone."
# Remove all files including hidden ones, but not . or ..
rm -rf ..?* .[!.]* ./*
-git clone --branch main https://chromium.googlesource.com/angle/angle .
+git clone https://chromium.googlesource.com/angle/angle .
echo "Successfully downloaded latest ANGLE."
+git checkout -q "$ANGLE_TARGET_COMMIT"
echo "Commit hash: "
COMMIT_HASH=$(git rev-parse HEAD)
echo "$COMMIT_HASH"
@@ -222,7 +229,7 @@ sed -i.bak -e "s/<string>[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]<\/string>/<s
rm ANGLE.plist.bak
echo "Translating gni build files to cmake."
-git checkout origin/main -- src/compiler.gni src/libGLESv2.gni src/libANGLE/renderer/d3d/BUILD.gn
+git checkout "$ANGLE_TARGET_COMMIT" -- src/compiler.gni src/libGLESv2.gni src/libANGLE/renderer/d3d/BUILD.gn
./gni-to-cmake.py src/compiler.gni Compiler.cmake
./gni-to-cmake.py src/libGLESv2.gni GLESv2.cmake
./gni-to-cmake.py src/libANGLE/renderer/d3d/BUILD.gn D3D.cmake --prepend 'src/libANGLE/renderer/d3d/'
@@ -244,7 +251,7 @@ git replace --graft "$LAST_ROLL_COMMIT_HASH" "$PREVIOUS_ANGLE_COMMIT_HASH"
git checkout -b rebased-webkit-changes
echo "Rebasing WebKit's local changes on latest ANGLE main."
-if ! git rebase origin/main; then
+if ! git rebase "$ANGLE_TARGET_COMMIT"; then
echo
echo "There is now a temporary git repo in Source/ThirdParty/ANGLE with a"
echo "rebase in progress. You must resolve the merge conflict and continue"
Overview
Advisory: Apple Security Advisory
Impact:
Description: Private Browsing tabs may be accessed without authentication
Researchers: Matej Rabzelj
| Attribute | Value |
|---|---|
| CVE | CVE-2024-23273 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
This issue was addressed through improved state management.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A maliciously crafted webpage may be able to fingerprint the user
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2024-23280 |
| Bugzilla | 266703 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 17c0ad98bb1ce2d5… |
| Advisory | Apple Advisory |
Root Cause Analysis
An injection issue was addressed with improved validation.
Files Changed
Source Files
Source/WebCore/Modules/entriesapi/DOMFileSystem.cpp
Test Files
LayoutTests/http/tests/security/file-system-access-via-dataTransfer-expected.txtLayoutTests/http/tests/security/file-system-access-via-dataTransfer.html
Patch Preview
diff --git a/LayoutTests/http/tests/security/file-system-access-via-dataTransfer-expected.txt b/LayoutTests/http/tests/security/file-system-access-via-dataTransfer-expected.txt
new file mode 100644
index 000000000000..641ddaebab3e
--- /dev/null
+++ b/LayoutTests/http/tests/security/file-system-access-via-dataTransfer-expected.txt
@@ -0,0 +1,10 @@
+Test that accessing local file system metadata is not allowed
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Should not receive file
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
diff --git a/LayoutTests/http/tests/security/file-system-access-via-dataTransfer.html b/LayoutTests/http/tests/security/file-system-access-via-dataTransfer.html
new file mode 100644
index 000000000000..caf05e1f85fc
--- /dev/null
+++ b/LayoutTests/http/tests/security/file-system-access-via-dataTransfer.html
@@ -0,0 +1,50 @@
+<html>
+<head>
+<script src="/js-test-resources/js-test.js"></script>
+<body>
+
+<script>
+description("Test that accessing local file system metadata is not allowed");
+
+function runTest() {
+ if (!window.internals) {
+ alert("This test depends on Internals");
+ return;
+ }
+
+ window.jsTestIsAsync = true;
+
+ let path = location.pathname.split("/");
+ let targetFileName = internals.createTemporaryFile(`${path[path.length - 1]}`, "");
+
+ let input = document.createElement("input");
+ input.type = "file";
+
+ let file = new File([], targetFileName, {"type":"text/plain"});
+
+ dataTransfer = new DataTransfer();
+ dataTransfer.items.add(file)
+ input.files = dataTransfer.files;
+
+ var functionOnSuccess = function (file)
+ {
+ testFailed("Should not receive file");
+ finishJSTest()
+ }
+
+ var functionOnError = function (value)
+ {
+ testPassed("Should not receive file");
+ finishJSTest()
+ }
+
+ input.webkitEntries.forEach((entry) => {
+ entry.file(functionOnSuccess, functionOnError)
+ });
+}
+
+runTest();
+
+</script>
+</body>
+</html>
diff --git a/Source/WebCore/Modules/entriesapi/DOMFileSystem.cpp b/Source/WebCore/Modules/entriesapi/DOMFileSystem.cpp
index 0c08ddbec609..e86b3dcc356c 100644
--- a/Source/WebCore/Modules/entriesapi/DOMFileSystem.cpp
+++ b/Source/WebCore/Modules/entriesapi/DOMFileSystem.cpp
@@ -303,6 +303,9 @@ void DOMFileSystem::getEntry(ScriptExecutionContext& context, FileSystemDirector
return;
}
+ if (m_rootPath.isEmpty())
+ return completionCallback(Exception { ExceptionCode::NotFoundError, "Path does not exist"_s });
+
m_workQueue->dispatch([protectedThis = Ref { *this }, context = Ref { context }, fullPath = crossThreadCopy(WTFMove(fullPath)), resolvedVirtualPath = crossThreadCopy(WTFMove(resolvedVirtualPath)), completionCallback = WTFMove(completionCallback)]() mutable {
auto entryType = fileTypeIgnoringHiddenFiles(fullPath);
callOnMainThread([protectedThis = WTFMove(protectedThis), context = WTFMove(context), resolvedVirtualPath = crossThreadCopy(WTFMove(resolvedVirtualPath)), entryType, completionCallback = WTFMove(completionCallback)]() mutable {
@@ -327,6 +330,8 @@ void DOMFileSystem::getEntry(ScriptExecutionContext& context, FileSystemDirector
void DOMFileSystem::getFile(ScriptExecutionContext& context, FileSystemFileEntry& fileEntry, GetFileCallback&& completionCallback)
{
+ if (m_rootPath.isEmpty())
+ return completionCallback(Exception { ExceptionCode::NotFoundError, "Path does not exist"_s });
auto virtualPath = fileEntry.virtualPath();
auto fullPath = evaluatePath(virtualPath);
m_workQueue->dispatch([fullPath = crossThreadCopy(WTFMove(fullPath)), virtualPath = crossThreadCopy(WTFMove(virtualPath)), context = Ref { context }, completionCallback = WTFMove(completionCallback)]() mutable {
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may prevent Content Security Policy from being enforced
Researchers: Georg Felber and Marco Squarcina
| Attribute | Value |
|---|---|
| CVE | CVE-2024-23284 |
| Bugzilla | 267241 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | d4d875b3f0503741… |
| Advisory | Apple Advisory |
Root Cause Analysis
A logic issue was addressed with improved state management.
Files Changed
Test Files
LayoutTests/http/tests/security/referrer-policy-header.htmlLayoutTests/platform/wk2/TestExpectations
Patch Preview
diff --git a/LayoutTests/http/tests/security/referrer-policy-header.html b/LayoutTests/http/tests/security/referrer-policy-header.html
index 4bfe3dc27a22..39f7cacc7f70 100644
--- a/LayoutTests/http/tests/security/referrer-policy-header.html
+++ b/LayoutTests/http/tests/security/referrer-policy-header.html
@@ -8,9 +8,10 @@
<script>
description("Tests support for Referrer-Policy HTTP header.");
jsTestIsAsync = true;
-runTests(false);
-if (window.testRunner)
+if (window.testRunner) {
+ testRunner.waitUntilDone();
testRunner.setStatisticsShouldDowngradeReferrer(false, async () => { await runTests(false /* multipart */); });
+}
</script>
</body>
</html>
diff --git a/LayoutTests/platform/wk2/TestExpectations b/LayoutTests/platform/wk2/TestExpectations
index 10c1bdbcf4de..59832160e345 100644
--- a/LayoutTests/platform/wk2/TestExpectations
+++ b/LayoutTests/platform/wk2/TestExpectations
@@ -870,6 +870,4 @@ webkit.org/b/259409 imported/w3c/web-platform-tests/cookies/partitioned-cookies/
webkit.org/b/259482 fast/media/managed-media-source-open-crash.html [ Pass Failure ]
-webkit.org/b/260632 http/tests/security/referrer-policy-header.html [ Pass Failure Crash ]
-
webkit.org/b/260640 [ Release arm64 ] editing/execCommand/apply-inline-style-to-element-with-no-renderer-crash.html [ Pass Failure ]
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing web content may lead to a denial-of-service
Researchers: anbu1024 of SecANT
| Attribute | Value |
|---|---|
| CVE | CVE-2024-54658 |
| Bugzilla | 263758 |
| Component | WebCore |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 85133f0883e415c6… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebCore/ChangeLogSource/WebCore/page/RuntimeEnabledFeatures.h
Patch Preview
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index c3e287485b44..42adcd8a5f7f 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,15 @@
+2020-06-30 Youenn Fablet <[email protected]>
+
+ Set runtime flag m_isWebRTCPlatformCodecsInGPUProcessEnabled to false by default
+ https://bugs.webkit.org/show_bug.cgi?id=213779
+
+ Reviewed by Alex Christensen.
+
+ No change of behavior since this flag is WebKit 2 only and off by default.
+ Move off by default WebRTC flags at the end of the section.
+
+ * page/RuntimeEnabledFeatures.h:
+
2020-06-30 Jason Lawrence <[email protected]>
Unreviewed, reverting r263753.
diff --git a/Source/WebCore/page/RuntimeEnabledFeatures.h b/Source/WebCore/page/RuntimeEnabledFeatures.h
index 2c8d52308ec4..79d26723fb96 100644
--- a/Source/WebCore/page/RuntimeEnabledFeatures.h
+++ b/Source/WebCore/page/RuntimeEnabledFeatures.h
@@ -512,12 +512,12 @@ class RuntimeEnabledFeatures {
#if ENABLE(WEB_RTC)
bool m_isWebRTCDTMFEnabled { true };
- bool m_isWebRTCH265CodecEnabled { false };
- bool m_isWebRTCVP9CodecEnabled { false };
bool m_isPeerConnectionEnabled { true };
- bool m_isWebRTCMDNSICECandidatesEnabled { false };
bool m_isWebRTCH264SimulcastEnabled { true };
- bool m_isWebRTCPlatformCodecsInGPUProcessEnabled { true };
+ bool m_isWebRTCMDNSICECandidatesEnabled { false };
+ bool m_isWebRTCPlatformCodecsInGPUProcessEnabled { false };
+ bool m_isWebRTCH265CodecEnabled { false };
+ bool m_isWebRTCVP9CodecEnabled { false };
#endif
#if ENABLE(LEGACY_CSS_VENDOR_PREFIXES)
Overview
Advisory: Apple Security Advisory
Impact:
Description: A maliciously crafted webpage may be able to fingerprint the user
Researchers: an anonymous researcher
| Attribute | Value |
|---|---|
| CVE | CVE-2024-23206 |
| Bugzilla | 262699 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Commit | 89314de81d9bcf4a… |
| Advisory | Apple Advisory |
Root Cause Analysis
An access issue was addressed with improved access restrictions.
Files Changed
Source Files
Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in
Patch Preview
diff --git a/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in b/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in
index 9734cf26a015..a37b59016703 100644
--- a/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in
+++ b/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in
@@ -37,6 +37,9 @@
(allow process-info-codesignature)
#endif
+(deny file-read-metadata
+ (literal "/private/var/db/MobileIdentityData/Version.plist"))
+
;;;
;;; The following rules were originally contained in 'common.sb'. We are duplicating them here so we can
;;; remove unneeded sandbox extensions.
Overview
Advisory: Apple Security Advisory
Impact:
Description: A user’s private browsing activity may be visible in Settings
Researchers: Mark Bowers
| Attribute | Value |
|---|---|
| CVE | CVE-2024-23211 |
| Bugzilla | None |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | medium |
| Advisory | Apple Advisory |
Root Cause Analysis
A privacy issue was addressed with improved handling of user preferences.
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing web content may lead to arbitrary code execution
Researchers: Wangtaiyu of Zhongfu info
| Attribute | Value |
|---|---|
| CVE | CVE-2024-23213 |
| Bugzilla | 266619 |
| Component | WebKit |
| Bug Class | LogicError |
| Severity | critical |
| Commit | 8b7b2179aa726973… |
| Advisory | Apple Advisory |
Root Cause Analysis
The issue was addressed with improved memory handling.
Files Changed
Source Files
Source/WebKit/CMakeLists.txt
Patch Preview
diff --git a/Source/WebKit/CMakeLists.txt b/Source/WebKit/CMakeLists.txt
index 3b782a4b3d6f..bd39f0753235 100644
--- a/Source/WebKit/CMakeLists.txt
+++ b/Source/WebKit/CMakeLists.txt
@@ -40,6 +40,7 @@ set(WebKit_PRIVATE_INCLUDE_DIRECTORIES
"${WEBKIT_DIR}/Shared/CoreIPCSupport"
"${WEBKIT_DIR}/Shared/Databases"
"${WEBKIT_DIR}/Shared/Databases/IndexedDB"
+ "${WEBKIT_DIR}/Shared/Extensions"
"${WEBKIT_DIR}/Shared/FileAPI"
"${WEBKIT_DIR}/Shared/Gamepad"
"${WEBKIT_DIR}/Shared/Notifications"
Overview
Advisory: Apple Security Advisory
Impact:
Description: Processing maliciously crafted web content may lead to arbitrary code execution. Apple is aware of a report that this issue may have been exploited.
| Attribute | Value |
|---|---|
| CVE | CVE-2024-23222 |
| Bugzilla | 267134 |
| Component | WebCore |
| Bug Class | TypeConfusion |
| Severity | critical |
| Commit | a973b2b5b5cbd087… |
| Advisory | Apple Advisory |
Root Cause Analysis
A type confusion issue was addressed with improved checks.
Files Changed
Source Files
Source/WebCore/ChangeLogSource/WebCore/layout/layouttree/LayoutBox.cpp
Patch Preview
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 399d9430452c..3a1a74aa194a 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,15 @@
+2020-09-15 Zalan Bujtas <[email protected]>
+
+ [LFC][FFC] 'display: flex' generates a flex container box that is block-level when placed in flow layout
+ https://bugs.webkit.org/show_bug.cgi?id=216596
+
+ Reviewed by Simon Fraser.
+
+ See https://www.w3.org/TR/css-flexbox-1/#flex-containers.
+
+ * layout/layouttree/LayoutBox.cpp:
+ (WebCore::Layout::Box::isBlockLevelBox const):
+
2020-09-15 Zalan Bujtas <[email protected]>
[LFC] Use isBlockBox() in Box::establishesBlockFormattingContext
diff --git a/Source/WebCore/layout/layouttree/LayoutBox.cpp b/Source/WebCore/layout/layouttree/LayoutBox.cpp
index ae3b1a4e1369..6f2f203834cf 100644
--- a/Source/WebCore/layout/layouttree/LayoutBox.cpp
+++ b/Source/WebCore/layout/layouttree/LayoutBox.cpp
@@ -295,7 +295,7 @@ bool Box::isBlockLevelBox() const
{
// Block level elements generate block level boxes.
auto display = m_style.display();
- return display == DisplayType::Block || display == DisplayType::ListItem || display == DisplayType::Table;
+ return display == DisplayType::Block || display == DisplayType::ListItem || display == DisplayType::Table || display == DisplayType::Flex;
}
bool Box::isBlockBox() const
Overview
Advisory: Apple Security Advisory
Impact:
Description: A malicious website may cause unexpected cross-origin behavior
Researchers: James Lee (@Windowsrcer)
| Attribute | Value |
|---|---|
| CVE | CVE-2024-23271 |
| Bugzilla | 265812 |
| Component | WebCore |
| Bug Class | CrossOrigin |
| Severity | medium |
| Commit | cd10fd03842d94b7… |
| Advisory | Apple Advisory |
Root Cause Analysis
A logic issue was addressed with improved checks.
Files Changed
Source Files
Source/WebCore/ChangeLogSource/WebCore/css/CSSSelector.cpp
Test Files
LayoutTests/ChangeLogLayoutTests/TestExpectations
Patch Preview
diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog
index 409133b0ed61..e0a3e7cb2553 100644
--- a/LayoutTests/ChangeLog
+++ b/LayoutTests/ChangeLog
@@ -1,3 +1,13 @@
+2020-08-18 Antti Koivisto <[email protected]>
+
+ The CSS specificity of :host() pseudo-classes is wrong
+ https://bugs.webkit.org/show_bug.cgi?id=202494
+ <rdar://problem/66292568>
+
+ Reviewed by Anders Carlsson.
+
+ * TestExpectations:
+
2020-08-18 Diego Pino Garcia <[email protected]>
[GTK] Unreviewed test gardening. Update test baseline after r265749.
diff --git a/LayoutTests/TestExpectations b/LayoutTests/TestExpectations
index e17f48539072..1d87e2921dd0 100644
--- a/LayoutTests/TestExpectations
+++ b/LayoutTests/TestExpectations
@@ -4420,7 +4420,6 @@ webkit.org/b/214461 imported/w3c/web-platform-tests/css/css-pseudo/spelling-erro
webkit.org/b/214462 imported/w3c/web-platform-tests/css/css-scoping/host-context-specificity-001.html [ ImageOnlyFailure ]
webkit.org/b/214462 imported/w3c/web-platform-tests/css/css-scoping/host-context-specificity-002.html [ ImageOnlyFailure ]
webkit.org/b/214462 imported/w3c/web-platform-tests/css/css-scoping/host-context-specificity-003.html [ ImageOnlyFailure ]
-webkit.org/b/214462 imported/w3c/web-platform-tests/css/css-scoping/host-specificity.html [ ImageOnlyFailure ]
webkit.org/b/214462 imported/w3c/web-platform-tests/css/css-scoping/host-with-default-namespace-001.html [ ImageOnlyFailure ]
webkit.org/b/214462 imported/w3c/web-platform-tests/css/css-scoping/shadow-directionality-001.tentative.html [ ImageOnlyFailure ]
webkit.org/b/214462 imported/w3c/web-platform-tests/css/css-scoping/shadow-directionality-002.tentative.html [ ImageOnlyFailure ]
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 3433c7799ce4..383409fd4bc2 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2020-08-18 Antti Koivisto <[email protected]>
+
+ The CSS specificity of :host() pseudo-classes is wrong
+ https://bugs.webkit.org/show_bug.cgi?id=202494
+ <rdar://problem/66292568>
+
+ Reviewed by Anders Carlsson.
+
+ https://drafts.csswg.org/css-scoping/#host-selector
+
+ “The specificity of :host() is that of a pseudo-class, plus the specificity of its argument.”
+
+ * css/CSSSelector.cpp:
+ (WebCore::simpleSelectorSpecificityInternal):
+
2020-08-18 Youenn Fablet <[email protected]>
Add a JS built-in routine to mark a promise as handled
diff --git a/Source/WebCore/css/CSSSelector.cpp b/Source/WebCore/css/CSSSelector.cpp
index afd9bab0f9e6..c810b21d9c98 100644
--- a/Source/WebCore/css/CSSSelector.cpp
+++ b/Source/WebCore/css/CSSSelector.cpp
@@ -128,6 +128,7 @@ static unsigned simpleSelectorSpecificityInternal(const CSSSelector& simpleSelec
return 0;
case CSSSelector::PseudoClassNthChild:
case CSSSelector::PseudoClassNthLastChild:
+ case CSSSelector::PseudoClassHost:
return CSSSelector::addSpecificities(static_cast<unsigned>(SelectorSpecificityIncrement::ClassB), simpleSelector.selectorList() ? maxSpecificity(*simpleSelector.selectorList()) : 0);
default:
break;