Segfault in Admin > SiEnumIpTable
Author: mathijs-ixonCreated Aug 24, 2026Updated Aug 24, 2026
Labelsneeds-triage
Are you using SoftEther VPN 5.x?
- Yes, I'm using SoftEther VPN 5.x, not 4.x.
Version
No response
Component
VPN Server
Operating system & version
n/a
Architecture or Hardware model
No response
Steps to reproduce
We're regularly encountering a segfault in SiEnumIpTable, with the following stack trace:
#0 SiEnumIpTable (t=0x7f98a50494c0, hubname=<optimized out>, s=<optimized out>)
at /builds/softether/SoftEtherVPN/src/Cedar/Admin.c:4966
#1 SiEnumIpTable (s=<optimized out>, hubname=<optimized out>, t=0x7f98a50494c0)
at /builds/softether/SoftEtherVPN/src/Cedar/Admin.c:4929
#2 0x00007f98b8c3e5f2 in StEnumIpTable (a=a@entry=0x7f98a5b3db60, t=t@entry=0x7f98a50494c0)
at /builds/softether/SoftEtherVPN/src/Cedar/Admin.c:5001
#3 0x00007f98b8c4a003 in AdminDispatch (rpc=0x7f98a5cc3780, name=0x7f981cd30d20 "EnumIpTable",
p=<optimized out>) at /builds/softether/SoftEtherVPN/src/Cedar/Admin.c:1576
#4 0x00007f98b8d00181 in CallRpcDispatcher (r=r@entry=0x7f98a5cc3780, p=p@entry=0x7f98a49ba6c0)
at /builds/softether/SoftEtherVPN/src/Cedar/Remote.c:107
#5 0x00007f98b8c228ee in JsonRpcProcRequestObject (c=<optimized out>,
method_name=0x7f98a47b2a40 "EnumIpTable", json_req=<optimized out>, s=0x7f988034d690,
admin=0x7f98a5b3db60) at /builds/softether/SoftEtherVPN/src/Cedar/Admin.c:868
#6 JsonRpcProcRequestObject (admin=0x7f98a5b3db60, c=<optimized out>, s=0x7f988034d690,
json_req=<optimized out>, method_name=0x7f98a47b2a40 "EnumIpTable")
at /builds/softether/SoftEtherVPN/src/Cedar/Admin.c:844
#7 0x00007f98b8c471a8 in JsonRpcProcPost (c=0x7f98a4ae6550, s=0x7f988034d690, h=0x7f98a660d620,
post_data_size=<optimized out>) at /builds/softether/SoftEtherVPN/src/Cedar/Admin.c:1406
#8 0x00007f98b8cf1c84 in ServerDownloadSignature (c=c@entry=0x7f98a4ae6550,
error_detail_str=error_detail_str@entry=0x7f981cd311b8)
at /builds/softether/SoftEtherVPN/src/Cedar/Protocol.c:5823
#9 0x00007f98b8cf373a in ServerAccept (c=c@entry=0x7f98a4ae6550)
at /builds/softether/SoftEtherVPN/src/Cedar/Protocol.c:1228
#10 0x00007f98b8c9d709 in ConnectionAccept (c=c@entry=0x7f98a4ae6550)
at /builds/softether/SoftEtherVPN/src/Cedar/Connection.c:3077
#11 0x00007f98b8cbc4b7 in TCPAcceptedThread (param=<optimized out>, t=<optimized out>)
at /builds/softether/SoftEtherVPN/src/Cedar/Listener.c:181
#12 TCPAcceptedThread (t=<optimized out>, param=<optimized out>)
at /builds/softether/SoftEtherVPN/src/Cedar/Listener.c:140
#13 0x00007f98b8b43e3f in ThreadPoolProc (param=0x7f989d156b60, t=0x7f989d157160)
at /builds/softether/SoftEtherVPN/src/Mayaqua/Kernel.c:872
#14 ThreadPoolProc (t=0x7f989d157160, param=0x7f989d156b60)
at /builds/softether/SoftEtherVPN/src/Mayaqua/Kernel.c:827
#15 0x00007f98b8b828f4 in UnixDefaultThreadProc (param=0x7f989d1552f0)
at /builds/softether/SoftEtherVPN/src/Mayaqua/Unix.c:1594
#16 0x00007f98b895bac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#17 0x00007f98b89ed850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81We're running SoftEther as an OpenVPN server.
✔️ Expected Behavior
No response
❌ Actual Behavior
No response
Anything else?
It seems in Admin.c access to h->IpTable is protected by LockList(h->IpTable). However in Hub.c, this lock is never taken when modifying/accessing hub->IpTable; instead LockHashList(hub->MacHashTable) is used.
Looks like Admin.c needs the same protection (by locking MacHashTable), or everywhere else the IpTable list lock should be taken instead.
Source: SoftEtherVPN/SoftEtherVPN