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:81

We'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