Skip to content

moqrelayserver crash - ending session by closing bidi control results in UAF #20

@gmarzot

Description

@gmarzot

Core was generated by `./build/bin/moqrelayserver -port 4433 -cert ./certs/certificate.pem -key ./cer'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 folly::detail::CancellationState::requestCancellation (this=0x7fe098083440)
--Type for more, q to quit, c to continue without paging--
at /home/gmarzot/Projects/moq/moxygen/build/deps/folly/folly/CancellationToken.cpp:135
135 head
= callback->next
;
[Current thread is 1 (Thread 0x7fe09ea25640 (LWP 1023106))]
(gdb) bt
#0 folly::detail::CancellationState::requestCancellation (this=0x7fe098083440)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/folly/folly/CancellationToken.cpp:135
#1 0x00005578341f20fa in folly::detail::CancellationState::requestCancellation (this=)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/folly/folly/CancellationToken.cpp:180
#2 0x00005578343be055 in folly::CancellationSource::requestCancellation (this=)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/include/folly/CancellationToken-inl.h:238
#3 proxygen::WebTransportImpl::StreamReadHandle::deliverReadError (this=0x7fe098085598, ex=...)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/proxygen/proxygen/lib/http/webtransport/WebTransport Impl.cpp:315
#4 0x00005578343c009f in proxygen::WebTransportImpl::StreamReadHandle::readError (this=0x7fe098085598,
id=, error=...)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/proxygen/proxygen/lib/http/webtransport/WebTransport Impl.cpp:309
#5 0x00005578344cf83d in quic::QuicTransportBaseLite::cancelAllAppCallbacks (this=0x7fe098006b58,
err=...)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/mvfst/quic/api/QuicTransportBaseLite.cpp:2257
#6 0x00005578344ca47a in quic::QuicTransportBaseLite::closeImpl (this=, errorCode=...,
drainConnection=, sendCloseImmediately=)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/mvfst/quic/api/QuicTransportBaseLite.cpp:1443
#7 0x00005578344d3989 in quic::QuicTransportBaseLite::onNetworkData (this=0x7fe098006b58, peer=...,
networkData=...) at /usr/include/c++/11/bits/char_traits.h:357
#8 0x0000557834479db0 in operator() (__closure=0x7fe09ea1c2e0, transport=0x7fe098006a60)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/mvfst/quic/server/QuicServerWorker.cpp:848
--Type for more, q to quit, c to continue without paging--
#9 0x0000557834481a02 in quic::QuicServerWorker::dispatchPacketData (this=, client=..., routingData=..., networkData=...,
quicVersion=..., isForwardedData=) at /usr/include/c++/11/bits/shared_ptr_base.h:1295
#10 0x0000557834458cd0 in quic::QuicServer::routeDataToWorker (this=0x55783dd2ac20, client=..., routingData=..., networkData=...,
quicVersion=..., isForwardedData=false) at /home/gmarzot/Projects/moq/moxygen/_build/deps/mvfst/quic/server/QuicServer.cpp:465
#11 0x000055783447d991 in quic::QuicServerWorker::forwardNetworkData (this=0x55783dd2c150, client=..., routingData=..., networkData=...,
quicVersion=..., isForwardedData=)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/mvfst/quic/server/QuicServerWorker.cpp:649
#12 0x000055783447f916 in quic::QuicServerWorker::handleNetworkData (this=0x55783dd2c150, client=..., udpPacket=...,
isForwardedData=) at /usr/include/c++/11/bits/stl_iterator.h:1027
#13 0x00005578344803a9 in quic::QuicServerWorker::onDataAvailable (this=0x55783dd2c150, client=..., len=44, truncated=,
params=...) at /home/gmarzot/Projects/moq/moxygen/_build/deps/mvfst/quic/server/QuicServerWorker.cpp:375
#14 0x0000557834653a56 in folly::AsyncUDPSocket::handleRead (this=0x7fe0980014e0)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/folly/folly/io/async/AsyncUDPSocket.cpp:1331
#15 0x000055783420aefc in folly::EventHandler::libeventCallback (fd=, events=, arg=0x7fe0980014e0)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/folly/folly/io/async/EventHandler.cpp:159
#16 0x00007fe09f6cff58 in ?? () from /lib/x86_64-linux-gnu/libevent-2.1.so.7
#17 0x00007fe09f6d18a7 in event_base_loop () from /lib/x86_64-linux-gnu/libevent-2.1.so.7
#18 0x00005578341fe84e in (anonymous namespace)::EventBaseBackend::eb_event_base_loop (flags=1, this=)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/folly/folly/io/async/EventBase.cpp:99
#19 folly::EventBase::loopMain (this=0x55783dd3d900, flags=, options=...)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/folly/folly/io/async/EventBase.cpp:606
#20 0x00005578341fec35 in folly::EventBase::loopBody (this=0x55783dd3d900, flags=0, options=...)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/folly/folly/io/async/EventBase.cpp:516
#21 0x00005578341fecd0 in folly::EventBase::loop (this=0x55783dd3d900)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/folly/folly/io/async/EventBase.cpp:477
#22 0x0000557834200e5d in folly::EventBase::loopForever (this=this@entry=0x55783dd3d900)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/folly/folly/io/async/EventBase.cpp:784
#23 0x000055783465adf3 in folly::run (ebm=0x55783dd90060, eb=0x55783dd3d900, stop=0x55783dd3db88, name=...)
at /home/gmarzot/Projects/moq/moxygen/_build/deps/folly/folly/io/async/ScopedEventBaseThread.cpp:40
#24 0x00007fe09ee47253 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#25 0x00007fe09eacdac3 in start_thread (arg=) at ./nptl/pthread_create.c:442
#26 0x00007fe09eb5f850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions