Closed
Bug 1402973
Opened 8 years ago
Closed 8 years ago
ASan: heap use after free (READ of size 1) during WebRender failure on Debian 8 under VMWare Workstation 12
Categories
(Core :: Graphics: WebRender, defect)
Tracking
()
RESOLVED
INVALID
| Tracking | Status | |
|---|---|---|
| firefox-esr52 | --- | unaffected |
| firefox57 | --- | disabled |
| firefox58 | --- | disabled |
People
(Reporter: geeknik, Unassigned)
References
()
Details
(Keywords: csectype-uaf, nightly-community, reporter-external)
Read https://mozillagfx.wordpress.com/2017/09/25/webrender-newsletter-5/, fired up ASan Build ID 20170924022042 and set the webrender prefs as per the blog and this happens on startup. Debian 8 x64 + VMWare Workstation 12.
==12997==ERROR: AddressSanitizer: heap-use-after-free on address 0x6030004a3a42 at pc 0x000000429796 bp 0x7f61967a3da0 sp 0x7f61967a3530
READ of size 1 at 0x6030004a3a42 thread T25 (Renderer)
#0 0x429795 in __interceptor_strcmp /builds/slave/moz-toolchain/src/llvm/projects/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:284:3
#1 0x7f619d01ae27 in stub_find_dynamic (/usr/lib/x86_64-linux-gnu/libglapi.so.0+0x12e27)
#2 0x7f619d01ac8d in _glapi_get_proc_address (/usr/lib/x86_64-linux-gnu/libglapi.so.0+0x12c8d)
#3 0x7f619d24e842 in glXGetProcAddress (/usr/lib/x86_64-linux-gnu/libGL.so.1+0x1c842)
#4 0x7f61b32851ee in LookupSymbol /builds/worker/workspace/build/src/gfx/gl/GLLibraryLoader.cpp:63:15
#5 0x7f61b32851ee in mozilla::gl::GLLibraryLoader::LookupSymbol(char const*) /builds/worker/workspace/build/src/gfx/gl/GLLibraryLoader.cpp:46
#6 0x7f61b343fa63 in get_proc_address_from_glcontext /builds/worker/workspace/build/src/gfx/layers/wr/WebRenderBridgeParent.cpp:80:28
#7 0x7f61bdc177b2 in webrender_bindings::bindings::get_proc_address::h8300ed8c82fc8c61 /builds/worker/workspace/build/src/gfx/webrender_bindings/src/bindings.rs:412
#8 0x7f61bdcb25ce in webrender_bindings::bindings::wr_window_new::{{closure}} /builds/worker/workspace/build/src/gfx/webrender_bindings/src/bindings.rs:644
#9 0x7f61bdcb25ce in gleam::ffi_gl::Gl::load_with::do_metaloadfn::hf2f57da0d75049d6 /builds/worker/workspace/build/src/obj-firefox/toolkit/library/x86_64-unknown-linux-gnu/release/build/gleam-4a234b93fa4e8dc9/out/gl_bindings.rs:1617
#10 0x7f61bdc0482b in gleam::ffi_gl::{{impl}}::load_with::{{closure}}<closure> /builds/worker/workspace/build/src/obj-firefox/toolkit/library/x86_64-unknown-linux-gnu/release/build/gleam-4a234b93fa4e8dc9/out/gl_bindings.rs:1627
#11 0x7f61bdc0482b in gleam::ffi_gl::Gl::load_with::hf8c87940c73688b1 /builds/worker/workspace/build/src/obj-firefox/toolkit/library/x86_64-unknown-linux-gnu/release/build/gleam-4a234b93fa4e8dc9/out/gl_bindings.rs:1844
#12 0x7f61bdbfd047 in gleam::gl::{{impl}}::load_with<closure> /builds/worker/workspace/build/src/third_party/rust/gleam/src/gl_fns.rs:17
#13 0x7f61bdbfd047 in wr_window_new /builds/worker/workspace/build/src/gfx/webrender_bindings/src/bindings.rs:644
#14 0x7f61b399991c in mozilla::wr::NewRenderer::Run(mozilla::wr::RenderThread&, mozilla::wr::WrWindowId) /builds/worker/workspace/build/src/gfx/webrender_bindings/WebRenderAPI.cpp:73:10
#15 0x7f61b398d276 in mozilla::wr::RenderThread::RunEvent(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >) /builds/worker/workspace/build/src/gfx/webrender_bindings/RenderThread.cpp:187:11
#16 0x7f61b3998778 in applyImpl<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >), StoreCopyPassByConstLRef<mozilla::wr::WrWindowId>, StoreCopyPassByRRef<mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> > > , 0, 1> /builds/worker/workspace/build/src/obj-firefox/dist/include/nsThreadUtils.h:1142:12
#17 0x7f61b3998778 in apply<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >)> /builds/worker/workspace/build/src/obj-firefox/dist/include/nsThreadUtils.h:1148
#18 0x7f61b3998778 in mozilla::detail::RunnableMethodImpl<mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >), true, (mozilla::RunnableKind)0, mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >&&>::Run() /builds/worker/workspace/build/src/obj-firefox/dist/include/nsThreadUtils.h:1192
#19 0x7f61b2173203 in RunTask /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:452:9
#20 0x7f61b2173203 in DeferOrRunPendingTask /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:460
#21 0x7f61b2173203 in MessageLoop::DoWork() /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:535
#22 0x7f61b2174e59 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) /builds/worker/workspace/build/src/ipc/chromium/src/base/message_pump_default.cc:36:31
#23 0x7f61b2170deb in RunInternal /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:326:10
#24 0x7f61b2170deb in RunHandler /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:319
#25 0x7f61b2170deb in MessageLoop::Run() /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:299
#26 0x7f61b218e289 in base::Thread::ThreadMain() /builds/worker/workspace/build/src/ipc/chromium/src/base/thread.cc:181:16
#27 0x7f61b217fb5c in ThreadFunc(void*) /builds/worker/workspace/build/src/ipc/chromium/src/base/platform_thread_posix.cc:38:13
#28 0x7f61cdf31063 in start_thread /build/glibc-6V9RKT/glibc-2.19/nptl/pthread_create.c:309
#29 0x7f61cd03862c in clone /build/glibc-6V9RKT/glibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111
0x6030004a3a42 is located 2 bytes inside of 23-byte region [0x6030004a3a40,0x6030004a3a57)
freed by thread T25 (Renderer) here:
#0 0x4bc06b in __interceptor_free /builds/slave/moz-toolchain/src/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:47:3
#1 0x7f61bdc17814 in alloc_system::imp::deallocate /checkout/src/liballoc_system/lib.rs:163
#2 0x7f61bdc17814 in alloc_system::__rust_deallocate /checkout/src/liballoc_system/lib.rs:54
#3 0x7f61bdc17814 in alloc::heap::deallocate /checkout/src/liballoc/heap.rs:127
#4 0x7f61bdc17814 in alloc::heap::box_free<[u8]> /checkout/src/liballoc/heap.rs:169
#5 0x7f61bdc17814 in core::ptr::drop_in_place<alloc::boxed::Box<[u8]>> /checkout/src/libcore/ptr.rs:60
#6 0x7f61bdc17814 in core::ptr::drop_in_place<std::ffi::c_str::CString> /checkout/src/libcore/ptr.rs:60
#7 0x7f61bdc17814 in webrender_bindings::bindings::get_proc_address::h8300ed8c82fc8c61 /builds/worker/workspace/build/src/gfx/webrender_bindings/src/bindings.rs:421
#8 0x7f61bdcb25ce in webrender_bindings::bindings::wr_window_new::{{closure}} /builds/worker/workspace/build/src/gfx/webrender_bindings/src/bindings.rs:644
#9 0x7f61bdcb25ce in gleam::ffi_gl::Gl::load_with::do_metaloadfn::hf2f57da0d75049d6 /builds/worker/workspace/build/src/obj-firefox/toolkit/library/x86_64-unknown-linux-gnu/release/build/gleam-4a234b93fa4e8dc9/out/gl_bindings.rs:1617
#10 0x7f61bdc04285 in gleam::ffi_gl::{{impl}}::load_with::{{closure}}<closure> /builds/worker/workspace/build/src/obj-firefox/toolkit/library/x86_64-unknown-linux-gnu/release/build/gleam-4a234b93fa4e8dc9/out/gl_bindings.rs:1627
#11 0x7f61bdc04285 in gleam::ffi_gl::Gl::load_with::hf8c87940c73688b1 /builds/worker/workspace/build/src/obj-firefox/toolkit/library/x86_64-unknown-linux-gnu/release/build/gleam-4a234b93fa4e8dc9/out/gl_bindings.rs:1804
#12 0x7f61bdbfd047 in gleam::gl::{{impl}}::load_with<closure> /builds/worker/workspace/build/src/third_party/rust/gleam/src/gl_fns.rs:17
#13 0x7f61bdbfd047 in wr_window_new /builds/worker/workspace/build/src/gfx/webrender_bindings/src/bindings.rs:644
#14 0x7f61b399991c in mozilla::wr::NewRenderer::Run(mozilla::wr::RenderThread&, mozilla::wr::WrWindowId) /builds/worker/workspace/build/src/gfx/webrender_bindings/WebRenderAPI.cpp:73:10
#15 0x7f61b398d276 in mozilla::wr::RenderThread::RunEvent(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >) /builds/worker/workspace/build/src/gfx/webrender_bindings/RenderThread.cpp:187:11
#16 0x7f61b3998778 in applyImpl<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >), StoreCopyPassByConstLRef<mozilla::wr::WrWindowId>, StoreCopyPassByRRef<mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> > > , 0, 1> /builds/worker/workspace/build/src/obj-firefox/dist/include/nsThreadUtils.h:1142:12
#17 0x7f61b3998778 in apply<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >)> /builds/worker/workspace/build/src/obj-firefox/dist/include/nsThreadUtils.h:1148
#18 0x7f61b3998778 in mozilla::detail::RunnableMethodImpl<mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >), true, (mozilla::RunnableKind)0, mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >&&>::Run() /builds/worker/workspace/build/src/obj-firefox/dist/include/nsThreadUtils.h:1192
#19 0x7f61b2173203 in RunTask /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:452:9
#20 0x7f61b2173203 in DeferOrRunPendingTask /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:460
#21 0x7f61b2173203 in MessageLoop::DoWork() /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:535
#22 0x7f61b2174e59 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) /builds/worker/workspace/build/src/ipc/chromium/src/base/message_pump_default.cc:36:31
#23 0x7f61b2170deb in RunInternal /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:326:10
#24 0x7f61b2170deb in RunHandler /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:319
#25 0x7f61b2170deb in MessageLoop::Run() /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:299
#26 0x7f61b218e289 in base::Thread::ThreadMain() /builds/worker/workspace/build/src/ipc/chromium/src/base/thread.cc:181:16
#27 0x7f61b217fb5c in ThreadFunc(void*) /builds/worker/workspace/build/src/ipc/chromium/src/base/platform_thread_posix.cc:38:13
#28 0x7f61cdf31063 in start_thread /build/glibc-6V9RKT/glibc-2.19/nptl/pthread_create.c:309
previously allocated by thread T25 (Renderer) here:
#0 0x4bc76e in realloc /builds/slave/moz-toolchain/src/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:77:3
#1 0x7f61bdfb37f9 in alloc_system::imp::reallocate /checkout/src/liballoc_system/lib.rs:143
#2 0x7f61bdfb37f9 in alloc_system::__rust_reallocate /checkout/src/liballoc_system/lib.rs:63
#3 0x7f61bdfb37f9 in alloc::heap::reallocate /checkout/src/liballoc/heap.rs:93
#4 0x7f61bdfb37f9 in alloc::raw_vec::{{impl}}::reserve_exact<u8> /checkout/src/liballoc/raw_vec.rs:332
#5 0x7f61bdfb37f9 in collections::vec::{{impl}}::reserve_exact<u8> /checkout/src/libcollections/vec.rs:485
#6 0x7f61bdfb37f9 in std::ffi::c_str::CString::from_vec_unchecked::h744386070dd6b673 /checkout/src/libstd/ffi/c_str.rs:257
#7 0x7f61bdc17797 in std::ffi::c_str::{{impl}}::_new /checkout/src/libstd/ffi/c_str.rs:232
#8 0x7f61bdc17797 in std::ffi::c_str::{{impl}}::new<&str> /checkout/src/libstd/ffi/c_str.rs:226
#9 0x7f61bdc17797 in webrender_bindings::bindings::get_proc_address::h8300ed8c82fc8c61 /builds/worker/workspace/build/src/gfx/webrender_bindings/src/bindings.rs:411
#10 0x7f61bdcb25ce in webrender_bindings::bindings::wr_window_new::{{closure}} /builds/worker/workspace/build/src/gfx/webrender_bindings/src/bindings.rs:644
#11 0x7f61bdcb25ce in gleam::ffi_gl::Gl::load_with::do_metaloadfn::hf2f57da0d75049d6 /builds/worker/workspace/build/src/obj-firefox/toolkit/library/x86_64-unknown-linux-gnu/release/build/gleam-4a234b93fa4e8dc9/out/gl_bindings.rs:1617
#12 0x7f61bdc04285 in gleam::ffi_gl::{{impl}}::load_with::{{closure}}<closure> /builds/worker/workspace/build/src/obj-firefox/toolkit/library/x86_64-unknown-linux-gnu/release/build/gleam-4a234b93fa4e8dc9/out/gl_bindings.rs:1627
#13 0x7f61bdc04285 in gleam::ffi_gl::Gl::load_with::hf8c87940c73688b1 /builds/worker/workspace/build/src/obj-firefox/toolkit/library/x86_64-unknown-linux-gnu/release/build/gleam-4a234b93fa4e8dc9/out/gl_bindings.rs:1804
#14 0x7f61bdbfd047 in gleam::gl::{{impl}}::load_with<closure> /builds/worker/workspace/build/src/third_party/rust/gleam/src/gl_fns.rs:17
#15 0x7f61bdbfd047 in wr_window_new /builds/worker/workspace/build/src/gfx/webrender_bindings/src/bindings.rs:644
#16 0x7f61b399991c in mozilla::wr::NewRenderer::Run(mozilla::wr::RenderThread&, mozilla::wr::WrWindowId) /builds/worker/workspace/build/src/gfx/webrender_bindings/WebRenderAPI.cpp:73:10
#17 0x7f61b398d276 in mozilla::wr::RenderThread::RunEvent(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >) /builds/worker/workspace/build/src/gfx/webrender_bindings/RenderThread.cpp:187:11
#18 0x7f61b3998778 in applyImpl<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >), StoreCopyPassByConstLRef<mozilla::wr::WrWindowId>, StoreCopyPassByRRef<mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> > > , 0, 1> /builds/worker/workspace/build/src/obj-firefox/dist/include/nsThreadUtils.h:1142:12
#19 0x7f61b3998778 in apply<mozilla::wr::RenderThread, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >)> /builds/worker/workspace/build/src/obj-firefox/dist/include/nsThreadUtils.h:1148
#20 0x7f61b3998778 in mozilla::detail::RunnableMethodImpl<mozilla::wr::RenderThread*, void (mozilla::wr::RenderThread::*)(mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >), true, (mozilla::RunnableKind)0, mozilla::wr::WrWindowId, mozilla::UniquePtr<mozilla::wr::RendererEvent, mozilla::DefaultDelete<mozilla::wr::RendererEvent> >&&>::Run() /builds/worker/workspace/build/src/obj-firefox/dist/include/nsThreadUtils.h:1192
#21 0x7f61b2173203 in RunTask /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:452:9
#22 0x7f61b2173203 in DeferOrRunPendingTask /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:460
#23 0x7f61b2173203 in MessageLoop::DoWork() /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:535
#24 0x7f61b2174e59 in base::MessagePumpDefault::Run(base::MessagePump::Delegate*) /builds/worker/workspace/build/src/ipc/chromium/src/base/message_pump_default.cc:36:31
#25 0x7f61b2170deb in RunInternal /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:326:10
#26 0x7f61b2170deb in RunHandler /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:319
#27 0x7f61b2170deb in MessageLoop::Run() /builds/worker/workspace/build/src/ipc/chromium/src/base/message_loop.cc:299
#28 0x7f61b218e289 in base::Thread::ThreadMain() /builds/worker/workspace/build/src/ipc/chromium/src/base/thread.cc:181:16
#29 0x7f61b217fb5c in ThreadFunc(void*) /builds/worker/workspace/build/src/ipc/chromium/src/base/platform_thread_posix.cc:38:13
#30 0x7f61cdf31063 in start_thread /build/glibc-6V9RKT/glibc-2.19/nptl/pthread_create.c:309
Thread T25 (Renderer) created by T0 here:
#0 0x4a4796 in __interceptor_pthread_create /builds/slave/moz-toolchain/src/llvm/projects/compiler-rt/lib/asan/asan_interceptors.cc:245:3
#1 0x7f61b217ee3c in CreateThread /builds/worker/workspace/build/src/ipc/chromium/src/base/platform_thread_posix.cc:135:14
#2 0x7f61b217ee3c in PlatformThread::Create(unsigned long, PlatformThread::Delegate*, unsigned long*) /builds/worker/workspace/build/src/ipc/chromium/src/base/platform_thread_posix.cc:146
#3 0x7f61b218dcce in base::Thread::StartWithOptions(base::Thread::Options const&) /builds/worker/workspace/build/src/ipc/chromium/src/base/thread.cc:99:8
#4 0x7f61b398b6f3 in mozilla::wr::RenderThread::Start() /builds/worker/workspace/build/src/gfx/webrender_bindings/RenderThread.cpp:56:16
#5 0x7f61b377919f in InitLayersIPC /builds/worker/workspace/build/src/gfx/thebes/gfxPlatform.cpp:1034:7
#6 0x7f61b377919f in gfxPlatform::Init() /builds/worker/workspace/build/src/gfx/thebes/gfxPlatform.cpp:776
#7 0x7f61b3775d8b in gfxPlatform::GetPlatform() /builds/worker/workspace/build/src/gfx/thebes/gfxPlatform.cpp:545:9
#8 0x7f61b78d9497 in mozilla::widget::GfxInfoBase::GetContentBackend(nsTSubstring<char16_t>&) /builds/worker/workspace/build/src/widget/GfxInfoBase.cpp:1493:25
#9 0x7f61b148ba91 in NS_InvokeByIndex /builds/worker/workspace/build/src/xpcom/reflect/xptcall/md/unix/xptcinvoke_asm_x86_64_unix.S:129
#10 0x7f61b2c28340 in Invoke /builds/worker/workspace/build/src/js/xpconnect/src/XPCWrappedNative.cpp:1996:12
#11 0x7f61b2c28340 in Call /builds/worker/workspace/build/src/js/xpconnect/src/XPCWrappedNative.cpp:1315
#12 0x7f61b2c28340 in XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) /builds/worker/workspace/build/src/js/xpconnect/src/XPCWrappedNative.cpp:1282
#13 0x7f61b2c2fac5 in GetAttribute /builds/worker/workspace/build/src/js/xpconnect/src/xpcprivate.h:1685:17
#14 0x7f61b2c2fac5 in XPC_WN_GetterSetter(JSContext*, unsigned int, JS::Value*) /builds/worker/workspace/build/src/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:965
#15 0x7f61bc141ff4 in CallJSNative /builds/worker/workspace/build/src/js/src/jscntxtinlines.h:293:15
#16 0x7f61bc141ff4 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:495
#17 0x7f61bc143a2f in InternalCall /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:540:12
#18 0x7f61bc143a2f in Call /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:559
#19 0x7f61bc143a2f in js::CallGetter(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:674
#20 0x7f61bd0f1c05 in CallGetter /builds/worker/workspace/build/src/js/src/vm/NativeObject.cpp:2123:16
#21 0x7f61bd0f1c05 in GetExistingProperty<js::AllowGC::CanGC> /builds/worker/workspace/build/src/js/src/vm/NativeObject.cpp:2171
#22 0x7f61bd0f1c05 in NativeGetPropertyInline<js::AllowGC::CanGC> /builds/worker/workspace/build/src/js/src/vm/NativeObject.cpp:2385
#23 0x7f61bd0f1c05 in js::NativeGetProperty(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>, JS::Handle<jsid>, JS::MutableHandle<JS::Value>) /builds/worker/workspace/build/src/js/src/vm/NativeObject.cpp:2421
#24 0x7f61bc12f095 in GetProperty /builds/worker/workspace/build/src/js/src/vm/NativeObject.h:1590:12
#25 0x7f61bc12f095 in GetObjectElementOperation /builds/worker/workspace/build/src/js/src/vm/Interpreter-inl.h:524
#26 0x7f61bc12f095 in GetElementOperation /builds/worker/workspace/build/src/js/src/vm/Interpreter-inl.h:630
#27 0x7f61bc12f095 in Interpret(JSContext*, js::RunState&) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:2922
#28 0x7f61bc11321b in js::RunScript(JSContext*, js::RunState&) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:435:12
#29 0x7f61bc14218c in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:513:15
#30 0x7f61bc12be56 in CallFromStack /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:546:12
#31 0x7f61bc12be56 in Interpret(JSContext*, js::RunState&) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:3084
#32 0x7f61bc11321b in js::RunScript(JSContext*, js::RunState&) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:435:12
#33 0x7f61bc14218c in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:513:15
#34 0x7f61bc12be56 in CallFromStack /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:546:12
#35 0x7f61bc12be56 in Interpret(JSContext*, js::RunState&) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:3084
#36 0x7f61bc11321b in js::RunScript(JSContext*, js::RunState&) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:435:12
#37 0x7f61bc14218c in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:513:15
#38 0x7f61bc12be56 in CallFromStack /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:546:12
#39 0x7f61bc12be56 in Interpret(JSContext*, js::RunState&) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:3084
#40 0x7f61bc11321b in js::RunScript(JSContext*, js::RunState&) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:435:12
#41 0x7f61bc14218c in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:513:15
#42 0x7f61bc142ae2 in js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>) /builds/worker/workspace/build/src/js/src/vm/Interpreter.cpp:559:10
#43 0x7f61bcb94543 in JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>) /builds/worker/workspace/build/src/js/src/jsapi.cpp:2906:12
#44 0x7f61b2c0ecb3 in nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS*, unsigned short, XPTMethodDescriptor const*, nsXPTCMiniVariant*) /builds/worker/workspace/build/src/js/xpconnect/src/XPCWrappedJSClass.cpp:1318:23
#45 0x7f61b148d17a in PrepareAndDispatch /builds/worker/workspace/build/src/xpcom/reflect/xptcall/md/unix/xptcstubs_x86_64_linux.cpp:120:28
#46 0x7f61b148c156 in SharedStub (/home/geeknik/firefox/libxul.so+0x220b156)
#47 0x7f61b140dc5b in NS_CreateServicesFromCategory(char const*, nsISupports*, char const*, char16_t const*) /builds/worker/workspace/build/src/xpcom/components/nsCategoryManager.cpp:810:19
#48 0x7f61bbc78635 in nsXREDirProvider::DoStartup() /builds/worker/workspace/build/src/toolkit/xre/nsXREDirProvider.cpp:1040:11
#49 0x7f61bbc570e8 in XREMain::XRE_mainRun() /builds/worker/workspace/build/src/toolkit/xre/nsAppRunner.cpp:4530:16
#50 0x7f61bbc59828 in XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /builds/worker/workspace/build/src/toolkit/xre/nsAppRunner.cpp:4865:8
#51 0x7f61bbc5ac5b in XRE_main(int, char**, mozilla::BootstrapConfig const&) /builds/worker/workspace/build/src/toolkit/xre/nsAppRunner.cpp:4960:21
#52 0x4ebfe3 in do_main /builds/worker/workspace/build/src/browser/app/nsBrowserApp.cpp:236:22
#53 0x4ebfe3 in main /builds/worker/workspace/build/src/browser/app/nsBrowserApp.cpp:309
#54 0x7f61ccf71b44 in __libc_start_main /build/glibc-6V9RKT/glibc-2.19/csu/libc-start.c:287
SUMMARY: AddressSanitizer: heap-use-after-free /builds/slave/moz-toolchain/src/llvm/projects/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:284:3 in __interceptor_strcmp
Shadow bytes around the buggy address:
0x0c068008c6f0: fd fa fa fa fd fd fd fa fa fa fd fd fd fa fa fa
0x0c068008c700: fd fd fd fa fa fa fd fd fd fa fa fa fd fd fd fa
0x0c068008c710: fa fa fd fd fd fa fa fa fd fd fd fd fa fa fd fd
0x0c068008c720: fd fd fa fa fd fd fd fa fa fa fd fd fd fa fa fa
0x0c068008c730: fd fd fd fa fa fa fd fd fd fa fa fa fd fd fd fa
=>0x0c068008c740: fa fa fd fd fd fa fa fa[fd]fd fd fa fa fa fd fd
0x0c068008c750: fd fa fa fa fd fd fd fa fa fa fd fd fd fa fa fa
0x0c068008c760: fd fd fd fa fa fa fd fd fd fa fa fa fd fd fd fa
0x0c068008c770: fa fa fd fd fd fa fa fa fd fd fd fd fa fa fd fd
0x0c068008c780: fd fd fa fa fd fd fd fa fa fa fd fd fd fa fa fa
0x0c068008c790: fd fd fd fa fa fa fd fd fd fa fa fa fd fd fd fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Heap right redzone: fb
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack partial redzone: f4
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==12997==ABORTING
Comment 1•8 years ago
|
||
Note from the blog post "Again, some key parts of the WebRender integration are still in a very rough shape."
Group: core-security → gfx-core-security
| Reporter | ||
Comment 2•8 years ago
|
||
(In reply to Daniel Veditz [:dveditz] from comment #1)
> Note from the blog post "Again, some key parts of the WebRender integration
> are still in a very rough shape."
Agreed. On a non-VM Fedora 26 x64 machine, this memory error doesn't manifest itself.
Updated•8 years ago
|
Blocks: stage-wr-nightly
Updated•8 years ago
|
Updated•8 years ago
|
Priority: -- → P2
Whiteboard: [wr-mvp]
Comment 3•8 years ago
|
||
"unaffected" status seems wrong since the ASAN crash seems to show an effect. --> "disabled"
Updated•8 years ago
|
status-firefox-esr52:
--- → unaffected
Comment 4•8 years ago
|
||
Searching for the function name in frame 1, the top result on Google is this: https://bugs.freedesktop.org/show_bug.cgi?id=81992
The top frames are the same, so it seems like this is a bug in Debian.
| Reporter | ||
Comment 5•8 years ago
|
||
Upon further investigation here, I have found the following: Setting gfx.webrender.enabled and gfx.webrendest.enabled to true on their own does not trigger the UAF, you have to set layers.acceleration.force-enabled to true as well. Also of note, setting layers.acceleration.force-enabled to true on it's own and leaving the webrender options set to false does not trigger the UAF.
Comment 6•8 years ago
|
||
Brian: does the system you're testing have the fix for the bug Andrew mentioned in comment 4?
Mail us at security@ to reopen the bug if it does, but really we think this is a Debian bug.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → INVALID
Updated•8 years ago
|
Priority: P2 → --
Whiteboard: [wr-mvp]
Updated•8 years ago
|
Flags: sec-bounty? → sec-bounty-
Updated•6 years ago
|
Group: gfx-core-security
Updated•1 year ago
|
Keywords: reporter-external
You need to log in
before you can comment on or make changes to this bug.
Description
•