Closed Bug 1605514 Opened 5 years ago Closed 5 years ago

MOZ_CRASH: Attempt to deserialize absent BrowsingContext

Categories

(Core :: DOM: Content Processes, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla74
Tracking Status
firefox71 --- wontfix
firefox72 --- wontfix
firefox73 --- wontfix
firefox74 --- fixed

People

(Reporter: tsmith, Assigned: nika)

References

Details

(Keywords: oss-fuzz)

Attachments

(1 file)

Info

Reproduced with: m-c 20191219-8e1b11b00157
Fuzz Target: ContentParentIPC
Reliably Reproduces: Yes
Pernosco session: https://pernos.co/debug/MdouPzvDvEG7zmrgq_lJHA/index.html
If the crash is benign then the crash can be blacklisted upon request and the particular message will be ignored in further fuzzing runs.

Callstack

MOZ_CRASH: Attempt to deserialize absent BrowsingContext

#0 mozilla::ipc::IPDLParamTraits<mozilla::dom::BrowsingContext*>::Read(IPC::Message const*, PickleIterator*, mozilla::ipc::IProtocol*, RefPtr<mozilla::dom::BrowsingContext>*) docshell/base/BrowsingContext.cpp:1520:12
#1 mozilla::ipc::IPDLParamTraits<mozilla::dom::WindowGlobalInit>::Read(IPC::Message const*, PickleIterator*, mozilla::ipc::IProtocol*, mozilla::dom::WindowGlobalInit*) objdir-ff-ubsan/ipc/ipdl/DOMTypes.cpp:1952:12
#2 mozilla::dom::PContentParent::OnMessageReceived(IPC::Message const&) objdir-ff-ubsan/ipc/ipdl/PContentParent.cpp:6265:20
#3 void mozilla::ipc::FuzzProtocol<mozilla::dom::ContentParent>(mozilla::dom::ContentParent*, unsigned char const*, unsigned long, nsTArray<nsTString<char> > const&) objdir-ff-ubsan/dist/include/ProtocolFuzzer.h:96:18
#4 RunContentParentIPCFuzzing(unsigned char const*, unsigned long) dom/ipc/fuzztest/content_parent_ipc_libfuzz.cpp:27:3
#5 fuzzer::Fuzzer::ExecuteCallback(unsigned char const*, unsigned long) tools/fuzzing/libfuzzer/FuzzerLoop.cpp:529:15
#6 fuzzer::RunOneTest(fuzzer::Fuzzer*, char const*, unsigned long) tools/fuzzing/libfuzzer/FuzzerDriver.cpp:286:6
#7 fuzzer::FuzzerDriver(int*, char***, int (*)(unsigned char const*, unsigned long)) tools/fuzzing/libfuzzer/FuzzerDriver.cpp:715:9
#8 mozilla::FuzzerRunner::Run(int*, char***) tools/fuzzing/interface/harness/FuzzerRunner.cpp:54:10
#9 XREMain::XRE_mainStartup(bool*) toolkit/xre/nsAppRunner.cpp:3752:35
#10 XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) toolkit/xre/nsAppRunner.cpp:4722:12
#11 XRE_main(int, char**, mozilla::BootstrapConfig const&) toolkit/xre/nsAppRunner.cpp:4818:21
#12 do_main(int, char**, char**) browser/app/nsBrowserApp.cpp:217:22
#13 main browser/app/nsBrowserApp.cpp:339:16
Component: DOM: Core & HTML → DOM: Navigation

Why did you move this to IPC? It looks like an issue with how docshell deals with browsing contexts.

(Bug 1603976 also has this crash, but the stack here looks unrelated to that.)

Flags: needinfo?(bugs)

Nika, it looks like you added this crash. Should we deal with it differently in fuzz builds or something?

Flags: needinfo?(nika)

Yeah, we probably should handle this differently in fuzz builds. I'm guessing that fuzz builds already handle deserialization failure errors gracefully, so we could downgrade this crash into one of those by returning false here.

Assignee: nobody → nika
Component: IPC → DOM: Content Processes
Flags: needinfo?(nika)

The component has been changed since the backlog priority was decided, so we're resetting it.
For more information, please visit auto_nag documentation.

Priority: P3 → --
Priority: -- → P2
Flags: needinfo?(bugs)

(Oops, sorry, I was first going to more to IPC, but then realized this isn't such, and marked P3.)

Pushed by nlayzell@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/fb4b94f0ff6c Avoid hard-crashing on malformed data while fuzzing, r=mccr8
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla74

Doesn't sound like this bug needs to be backported, but feel free to nominate for uplift if that's incorrect.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: