Commit 15f3e5a
committed
fix: remove RTCPeerConnection exhaustion (FILL500)
This partially reverts 750721c
(#3098).
Not completely though: the `<iframe>` thing is still there,
and I have not removed it yet for the sake of being conservative.
The most important point of this change is to prepare ourselves
for the removal of the `IsolateSandboxedIframes` Chromium feature.
It has been enabled by default, and is to be removed soon-ish:
https://issues.chromium.org/issues/362246896.
The feature makes the RTCPeerConnection exhaustion hack
not work anymore, because an attacker can create
a sandboxed `<iframe>`, and, as the feature name implies,
process-isolated, thus have a separate RTCPeerConnection 500 pool.
Earlier we simply un-enabled this Chromium feature in
50bcd88
(#4351),
but when it's removed, we will not be able to.
We could hold off on upgrading Electron then, but let's not.
To answer "Why haven't we done this before?":
probably because the 500 hack was the first thing
that proved to work, both on Electron and in Android.
But in Android apparently one can't control
the WebRTC IP handling policy, so this approach
is not available on Android.
Another thing is, of course, the fact that this speeds up
the process of launching an app.
And in general this approach seems more thorough to me.
It also provides another exfiltration security layer (a dummy proxy)
against regular HTTP requests as well,
i.e. it guards even against CSP bypass.
This uses the same approach that we took in the Tauri version:
#4852.
On top of that, the 500 limit itself is not something
that is set in stone and should be relied on.
To check that this still works, follow the instructions in
https://github.com/webxdc/webxdc-test/pull/40/files.1 parent dcf913f commit 15f3e5a
File tree
5 files changed
+101
-84
lines changed- packages/target-electron
- src
- deltachat
- static
5 files changed
+101
-84
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| 42 | + | |
42 | 43 | | |
43 | 44 | | |
44 | 45 | | |
| |||
103 | 104 | | |
104 | 105 | | |
105 | 106 | | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
106 | 163 | | |
107 | 164 | | |
108 | 165 | | |
| |||
179 | 236 | | |
180 | 237 | | |
181 | 238 | | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
182 | 260 | | |
183 | 261 | | |
184 | 262 | | |
| |||
200 | 278 | | |
201 | 279 | | |
202 | 280 | | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
203 | 294 | | |
204 | 295 | | |
205 | 296 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
24 | | - | |
25 | | - | |
26 | 24 | | |
27 | 25 | | |
28 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
53 | 53 | | |
54 | 54 | | |
55 | 55 | | |
56 | | - | |
57 | | - | |
58 | 56 | | |
59 | 57 | | |
60 | 58 | | |
| |||
244 | 242 | | |
245 | 243 | | |
246 | 244 | | |
247 | | - | |
248 | | - | |
249 | 245 | | |
250 | 246 | | |
251 | 247 | | |
| |||
262 | 258 | | |
263 | 259 | | |
264 | 260 | | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
269 | | - | |
270 | | - | |
| 261 | + | |
271 | 262 | | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | | - | |
281 | | - | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
286 | | - | |
287 | | - | |
288 | | - | |
289 | | - | |
290 | | - | |
291 | | - | |
292 | | - | |
293 | | - | |
294 | | - | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
299 | | - | |
300 | | - | |
301 | | - | |
302 | | - | |
303 | | - | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
| 263 | + | |
| 264 | + | |
314 | 265 | | |
315 | 266 | | |
316 | 267 | | |
317 | 268 | | |
318 | 269 | | |
319 | 270 | | |
320 | | - | |
321 | | - | |
322 | | - | |
| 271 | + | |
323 | 272 | | |
324 | 273 | | |
325 | 274 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | 25 | | |
48 | 26 | | |
49 | 27 | | |
50 | 28 | | |
51 | 29 | | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | 30 | | |
56 | 31 | | |
57 | | - | |
58 | | - | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
59 | 37 | | |
60 | 38 | | |
61 | 39 | | |
0 commit comments