Closed Bug 1277946 Opened 9 years ago Closed 9 years ago

Possible use-after-free in PBlobChild::DestroySubtree

Categories

(Core :: IPC, defect, P1)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1277614
Tracking Status
firefox49 --- affected

People

(Reporter: mccr8, Assigned: gkrizsanits)

Details

(Keywords: csectype-uaf, sec-moderate, Whiteboard: btpp-active)

Looking at the crash reports for bug 1277614, a lot of the crash addresses contain jemalloc poison. PBlobChild is the second thing that PContentChild::DestroySubtree destroys. I don't see anything else in the top 300 with DestroySubtree, so I'm not sure why this in particular is where all of the crashes are.
If the line numbers match up, then the crash is on the first line of PBlobChild::DestroySubtree, so maybe the |this| pointer for the PBlobChild is poisoned? I noticed that DestroySubtree() doesn't hold the actors alive, so maybe this is some kind of iterator invalidation? It also does not clear the array of child actors, so maybe this is getting called twice? Or maybe destroying one PBlobChild somehow destroys a sibling? Could you look at this, Bill?
Flags: needinfo?(wmccloskey)
Keywords: csectype-uaf
Relevant is jld's bug 898006 comment 4, which links to an analysis of a similar-looking crash in another DestroySubtree in bug 1202887.
Maybe it would make more sense for baku or somebody familiar with the PBlob ActorDestroy to audit that for possible things that are destroying other blobs.
Flags: needinfo?(wmccloskey) → needinfo?(amarchesini)
Group: core-security → dom-core-security
Flags: needinfo?(amarchesini)
Gabor is working on a related public bug.
Assignee: nobody → gkrizsanits
Whiteboard: btpp-active
This is pretty deep in shutdown, so I'll mark this moderate for now.
Keywords: sec-moderate
This is really just a dupe, and I ended up marking this sec-moderate, so I'll just dupe it over.
No longer blocks: 1277614
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → DUPLICATE
Group: dom-core-security
You need to log in before you can comment on or make changes to this bug.