Our current UPnP support works for IPv4 by requesting a port forward. It doesn’t work with IPv6 when the user is behind a firewall (which was the default for my modem at least).
More recent versions of libupnp support requesting a IPv6 pinhole.
I haven’t checked if the same could be done with NAT-PMP (#11902). That may be preferable to updating libupnp.
UPnP is baked into the GUI release binaries, though it’s turned off by default in the settings dialog.