Spamming blobs via `<a download>` clicks on a short interval can hang the parent process (even after closing the offending tab) and use excessive memory
Categories
(Core :: DOM: File, defect, P3)
Tracking
()
People
(Reporter: u635660, Unassigned)
References
(Blocks 1 open bug)
Details
(4 keywords)
Attachments
(1 file)
(deleted),
text/html
|
Details |
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36
Steps to reproduce:
open index.html
and then wait a few minutes and then it fully crashes
Actual results:
it crashes
Expected results:
it should not crash
keeping this hidden mainly because as it seems to impact TOR
here is some crash logs https://crash-stats.mozilla.org/report/index/8c975b29-c26b-494e-97ef-f7e9f0200619
Comment 5•4 years ago
|
||
All of these crashes are shutdown hangs, so they do not pinpoint the issue.
But checking this locally, the issue in the testcase appears to be about spamming blobs into the parent for downloads, plus some history navigation (for which I'm not sure whether it's related or not...).
:baku, I seem to recall you worked on this before? Maybe this is a dupe?
Comment 6•4 years ago
|
||
I think the main issue is that we allow multiple simultaneous downloads. I would block the issue at that level. See bug 1463527.
Comment 7•4 years ago
|
||
(In reply to Andrea Marchesini [:baku] from comment #6)
I think the main issue is that we allow multiple simultaneous downloads. I would block the issue at that level. See bug 1463527.
I don't understand why you believe that would help. The blobs get created and we have to at least start to load them before we even realize it's a download, so we'd incur the memory/IPC penalty already, no?
Comment 8•4 years ago
|
||
I don't understand why you believe that would help. The blobs get created and we have to at least start to load them before we even realize it's a download, so we'd incur the memory/IPC penalty already, no?
You are right. I haven't realized that the page reloads itself.
Something nice Chrome does is to detect IPC messages "abuse" and it blocks the content process.
Updated•4 years ago
|
seems fixed on firefox 83
Updated•4 years ago
|
Comment 10•4 years ago
|
||
The testcase has:
<script>while(true)document.location.href="#",window.history.back(),window.history.forward();</script>
I guess this was busted by bug 1314912 (thanks :pbz !)
Are we confident there aren't other issues left here with the blob URI stuff itself that could be abused some other way?
Johann, do you know?
Comment 11•3 years ago
|
||
I don't off-hand, and it's unlikely I can look more closely into this in the future. :)
Updated•1 year ago
|
Description
•