Linux dedicated server crash, only with Steam enabled

Our game builds and packages fine for Linux using the cross compile toolchain on Windows. While everything works fine on Windows, there is a crash on Linux when we try to start the dedicated server executable.

This only happens when either Steam is running or the steamclient.so is available in the same directory as the dedicated server executable. The funny thing is that the regular game executable works flawlessly, even with Steam running in the background. An online session is created with any errors and works as expected.

As said, the dedicated server executable crashes with SIGSEGV (signal 11). Gdb comes up with this stack trace, but I cannot make any sense of it:

#0  0x00007ff1d71cbd9b in _IO_vfwprintf (s=s@entry=0x7ff18c0004d0, format=format@entry=0x7ff18c000700 L"=== Critical error: ===\n%ls\n", ap=ap@entry=0x7ff18c000830) at vfprintf.c:1275
#1  0x00007ff1d71e6ea9 in _IO_vswprintf (string=0x7ff18c000920 L"", maxlen=511, format=0x7ff18c000700 L"=== Critical error: ===\n%ls\n", args=0x7ff18c000830) at vswprintf.c:111
#2  0x00000000035a10d2 in FStandardPlatformString::GetVarArgs (Dest=0x7ff18c000920 L"", DestSize=<optimized out>, Count=511, Fmt=<optimized out>, ArgPtr=0x7ff18c000830)
    at Runtime/Core/Public\GenericPlatform/StandardPlatformString.h:203
#3  0x000000000366d13d in TCString<wchar_t>::GetVarArgs (Dest=0x7ff100000000 <error: Cannot access memory at address 0x7ff100000000>, DestSize=512, Count=511, 
    Fmt=@0x2b3450: 0x3d0000003d <error: Cannot access memory at address 0x3d0000003d>, ArgPtr=0x3000000028) at E:\UnrealEngine\Engine\Source\Runtime\Core\Public\Misc/CString.h:820
#4  FMsg::Logf_InternalImpl (File=0x75635d "E:\\UnrealEngine\\Engine\\Source\\Runtime\\ApplicationCore\\Private\\Linux\\LinuxErrorOutputDevice.cpp", Line=<optimized out>, Category=..., 
    Verbosity=ELogVerbosity::Type::Log, Fmt=<optimized out>) at E:\UnrealEngine\Engine\Source\Runtime\Core\Private\Logging/LogMacros.cpp:91
#5  0x00000000038c79f8 in FMsg::Logf_Internal<wchar_t [28], wchar_t*> (File=<optimized out>, Line=93, Category=..., Verbosity=ELogVerbosity::Type::Log, Fmt=..., Args=<optimized out>)
    at Runtime/Core/Public\Logging/LogMacros.h:64
#6  FLinuxErrorOutputDevice::HandleError (this=<optimized out>) at E:\UnrealEngine\Engine\Source\Runtime\ApplicationCore\Private\Linux/LinuxErrorOutputDevice.cpp:93
#7  0x00000000061e6e24 in CommonLinuxCrashHandler (GenericContext=...) at E:\UnrealEngine\Engine\Source\Runtime\Linux\LinuxCommonStartup\Private/LinuxCommonStartup.cpp:48
#8  0x0000000003629663 in PlatformCrashHandler (Signal=11, Info=0x7ff18c008f30, Context=0x7ff18c008e00) at E:\UnrealEngine\Engine\Source\Runtime\Core\Private\Linux/LinuxPlatformCrashContext.cpp:521
#9  <signal handler called>
#10 FGenericPlatformMisc::RaiseException (ExceptionCode=1) at E:\UnrealEngine\Engine\Source\Runtime\Core\Private\GenericPlatform/GenericPlatformMisc.cpp:356
#11 0x00000000038c7862 in FLinuxErrorOutputDevice::Serialize (this=0x74b3508 <FLinuxPlatformApplicationMisc::GetErrorOutputDevice()::Singleton>, Msg=<optimized out>, Verbosity=<optimized out>, 
    Category=...) at E:\UnrealEngine\Engine\Source\Runtime\ApplicationCore\Private\Linux/LinuxErrorOutputDevice.cpp:58
#12 0x000000000370513f in FOutputDevice::LogfImpl (this=<optimized out>, Fmt=0x261fd8 L"Assertion failed: %s [File:%s] [Line: %i] \n%s\n")
    at E:\UnrealEngine\Engine\Source\Runtime\Core\Private\Misc/OutputDevice.cpp:70
#13 0x00000000036b1aab in FOutputDevice::Logf<wchar_t [47], wchar_t*, wchar_t*, int, wchar_t*> (this=<optimized out>, Fmt=..., Args=<optimized out>, Args=<optimized out>, Args=<optimized out>, 
    Args=<optimized out>) at Runtime/Core/Public\Misc/OutputDevice.h:218
#14 FDebug::AssertFailed (Expr=<optimized out>, File=0x74c06f "E:\\UnrealEngine\\Engine\\Source\\Runtime\\Core\\Private\\HAL\\MallocBinned2.cpp", Line=1146, Format=<optimized out>)
    at E:\UnrealEngine\Engine\Source\Runtime\Core\Private\Misc/AssertionMacros.cpp:419
#15 0x00000000035bf4dd in FMallocBinned2::FFreeBlock::CanaryFail (this=0x7ff18c0f0000) at E:\UnrealEngine\Engine\Source\Runtime\Core\Private\HAL/MallocBinned2.cpp:1146
#16 FMallocBinned2::FFreeBlock::CanaryTest (this=0x7ff18c0f0000) at Runtime/Core/Public\HAL/MallocBinned2.h:128
#17 FMallocBinned2::GetAllocationSizeExternal (this=0x7d51b30, Ptr=<optimized out>, SizeOut=@0x7ff1918f2540: 56467504) at E:\UnrealEngine\Engine\Source\Runtime\Core\Private\HAL/MallocBinned2.cpp:930
#18 0x00000000035da055 in FMallocPoisonProxy::Free (this=0x7d52800, Ptr=0x7ff18c0f1300) at Runtime/Core/Public\HAL/MallocPoisonProxy.h:82
#19 0x00007ff192bbcfd3 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#20 0x00007ff192d13c78 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#21 0x00007ff192d18797 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#22 0x00007ff192d12e89 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#23 0x00007ff192d1de47 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#24 0x00007ff192d12b48 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#25 0x00007ff192b72ea5 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#26 0x00007ff1922d1058 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#27 0x00007ff1922d1c82 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#28 0x00007ff192a23a4a in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#29 0x00007ff192a22ca3 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#30 0x00007ff192a22ed5 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#31 0x00007ff192a24d12 in ?? () from /home/jan/KMF_Linux/Game/Binaries/Linux/steamclient.so
#32 0x00007ff1d86fb6db in start_thread (arg=0x7ff1918f4700) at pthread_create.c:463
#33 0x00007ff1d728588f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Has anyone come across this issue too and knows how to solve it? Anything else that might help me debugging this crash is welcome as well.

I stumbled across this post: https://answers.unrealengine.com/questions/709998/linux-server-with-onlinesystemsteam-crashs-on-4172.html - turns out that it is the solution to our problem as well.

Remember: do NOT copy steamclient.so from your Steam client installation on Linux. Always use the one downloaded by SteamCMD. This should appear somewhere in the official documentation.