https://gitlab.freedesktop.org/slirp/libslirp/-/commit/3e6e68e779c9051590250a87214dabf91e70949a

Index: src/tcp_input.c
--- src/tcp_input.c.orig
+++ src/tcp_input.c
@@ -600,20 +600,17 @@ findso:
         if (af == AF_INET &&
             (so->so_faddr.s_addr & slirp->vnetwork_mask.s_addr) ==
                 slirp->vnetwork_addr.s_addr) {
-            if (so->so_faddr.s_addr != slirp->vhost_addr.s_addr &&
-                so->so_faddr.s_addr != slirp->vnameserver_addr.s_addr) {
-                /* May be an add exec */
-                for (ex_ptr = slirp->guestfwd_list; ex_ptr;
-                     ex_ptr = ex_ptr->ex_next) {
-                    if (ex_ptr->ex_fport == so->so_fport &&
-                        so->so_faddr.s_addr == ex_ptr->ex_addr.s_addr) {
-                        so->so_state |= SS_CTL;
-                        break;
-                    }
+            /* May be an add exec */
+            for (ex_ptr = slirp->guestfwd_list; ex_ptr;
+                 ex_ptr = ex_ptr->ex_next) {
+                if (ex_ptr->ex_fport == so->so_fport &&
+                    so->so_faddr.s_addr == ex_ptr->ex_addr.s_addr) {
+                    so->so_state |= SS_CTL;
+                    break;
                 }
-                if (so->so_state & SS_CTL) {
-                    goto cont_input;
-                }
+            }
+            if (so->so_state & SS_CTL) {
+                goto cont_input;
             }
             /* CTL_ALIAS: Do nothing, tcp_fconnect will be called on it */
         }
