Skip to content

Commit af08b50

Browse files
committed
chromium: backport patch that addresses cve-2021-21148.
A stable channel has been updated to 88.0.4324.150, but it hasn't been rolled out yet. Thus, backport the patch and keep it until the meta-browser chromium recipe is updated to 88.0.4324.150. Signed-off-by: Maksim Sisov <msisov@igalia.com>
1 parent d72e34d commit af08b50

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed

recipes-browser/chromium/chromium-gn.inc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ SRC_URI += " \
2323
file://0001-Build-fix-for-libstdc.patch \
2424
file://0001-IWYU-add-missing-include-for-std-vector-and-std-uniq.patch \
2525
file://0001-ozone-fix-include.patch \
26+
file://CVE-2021-21148.patch \
2627
"
2728

2829
SRC_URI_append_libc-musl = "\
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
Upstream-Status: Backport
2+
3+
This is a fix for CVE-2021-21148.
4+
See https://chromereleases.googleblog.com/2021/02/stable-channel-update-for-desktop_4.html
5+
for more details.
6+
7+
Signed-off-by: Maksim Sisov <msisov@igalia.com>
8+
---
9+
From dfcf1e86fac0a7b067caf8fdfc13eaf3e3f445e4 Mon Sep 17 00:00:00 2001
10+
From: Deepti Gandluri <gdeepti@chromium.org>
11+
Date: Wed, 27 Jan 2021 22:19:44 -0800
12+
Subject: [PATCH] [wasm] PostMessage of Memory.buffer should throw
13+
14+
PostMessage of an ArrayBuffer that is not detachable should result
15+
in a DataCloneError.
16+
17+
Bug: chromium:1170176, chromium:961059
18+
Change-Id: Ib89bbc10d2b58918067fd1a90365cad10a0db9ec
19+
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2653810
20+
Reviewed-by: Adam Klein <adamk@chromium.org>
21+
Reviewed-by: Andreas Haas <ahaas@chromium.org>
22+
Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
23+
Cr-Commit-Position: refs/heads/master@{#72415}
24+
---
25+
src/common/message-template.h | 2 ++
26+
src/objects/value-serializer.cc | 5 +++++
27+
2 files changed, 7 insertions(+)
28+
29+
diff --git a/v8/src/common/message-template.h b/v8/src/common/message-template.h
30+
index f0f4b61..c8ff902 100644
31+
--- a/v8/src/common/message-template.h
32+
+++ b/v8/src/common/message-template.h
33+
@@ -580,6 +580,8 @@ namespace internal {
34+
T(DataCloneErrorOutOfMemory, "Data cannot be cloned, out of memory.") \
35+
T(DataCloneErrorDetachedArrayBuffer, \
36+
"An ArrayBuffer is detached and could not be cloned.") \
37+
+ T(DataCloneErrorNonDetachableArrayBuffer, \
38+
+ "ArrayBuffer is not detachable and could not be cloned.") \
39+
T(DataCloneErrorSharedArrayBufferTransferred, \
40+
"A SharedArrayBuffer could not be cloned. SharedArrayBuffer must not be " \
41+
"transferred.") \
42+
diff --git a/v8/src/objects/value-serializer.cc b/v8/src/objects/value-serializer.cc
43+
index 3df1bb1..d5f5f05 100644
44+
--- a/v8/src/objects/value-serializer.cc
45+
+++ b/v8/src/objects/value-serializer.cc
46+
@@ -864,6 +864,11 @@ Maybe<bool> ValueSerializer::WriteJSArrayBuffer(
47+
WriteVarint(index.FromJust());
48+
return ThrowIfOutOfMemory();
49+
}
50+
+ if (!array_buffer->is_detachable()) {
51+
+ ThrowDataCloneError(
52+
+ MessageTemplate::kDataCloneErrorNonDetachableArrayBuffer);
53+
+ return Nothing<bool>();
54+
+ }
55+
56+
uint32_t* transfer_entry = array_buffer_transfer_map_.Find(array_buffer);
57+
if (transfer_entry) {
58+
--
59+
2.27.0
60+

0 commit comments

Comments
 (0)