diff --git a/src/security/tls_session.cpp b/src/security/tls_session.cpp
index ede53dba091c973efe0370817f77cb22784c7b00..97f4212bcea26e4934cbbc5e2052b0b6726f3fc2 100644
--- a/src/security/tls_session.cpp
+++ b/src/security/tls_session.cpp
@@ -623,6 +623,7 @@ TlsSession::TlsSessionImpl::recvRaw(void* buf, size_t size)
         return -1;
     }
 
+    std::lock_guard<std::mutex> lk {rxMutex_};
     if (rxQueue_.empty()) {
         gnutls_transport_set_errno(session_, EAGAIN);
         return -1;