Decouple AllowStreamLocalForwarding and AllowTcpForwarding
Baptiste Daroussin
bapt at nours.eu
Tue Oct 28 17:47:14 AEDT 2025
On Thu 16 Oct 13:43, Baptiste Daroussin wrote:
> hello everyone,
Hello,
Anything I should do on my side to make this progress?
Best regards,
Bapt
>
> I am trying to fix an issue we have at $work with the fact that the
> AllowStreamLocalFrowarding option is dependant on the AllowTcpForwarding option
> (this issue have been reported multiple time by others over the past).
>
> When looking at the code, I can see 2 approach:
> 1/ the complete option would consist in removing FORWARD_LOCAL and
> FORWARD_REMOTE and replace them with TCP_FORWARD_LOCAL and TCP_FORWARD_REMOTE
> then introduce STREAMLOCAL_FORWARD_LOCAL and STREAMLOCAL_FORWARD_REMOTE and
> duplicate all the code to deal with both case.
>
> 2/ the lazy approach which is the one I took so far would be to apply the patch.
>
> I am not very familiar with ssh code, but it seems to work and not break the
> testsuite. Still I ma pretty sure this is too naive, what do you think?
>
> Best regards,
> Bapt
>
> ---
> session.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/session.c b/session.c
> index f265fdc3ed3..e35ff360ec9 100644
> --- a/session.c
> +++ b/session.c
> @@ -323,11 +323,13 @@ do_authenticated(struct ssh *ssh, Authctxt *authctxt)
> channel_disable_admin(ssh, FORWARD_LOCAL);
> channel_disable_admin(ssh, FORWARD_REMOTE);
> } else {
> - if ((options.allow_tcp_forwarding & FORWARD_LOCAL) == 0)
> + if ((options.allow_tcp_forwarding & FORWARD_LOCAL) == 0 &&
> + (options.allow_streamlocal_forwarding & FORWARD_LOCAL) == 0)
> channel_disable_admin(ssh, FORWARD_LOCAL);
> else
> channel_permit_all(ssh, FORWARD_LOCAL);
> - if ((options.allow_tcp_forwarding & FORWARD_REMOTE) == 0)
> + if ((options.allow_tcp_forwarding & FORWARD_REMOTE) == 0 &&
> + (options.allow_streamlocal_forwarding & FORWARD_REMOTE) == 0)
> channel_disable_admin(ssh, FORWARD_REMOTE);
> else
> channel_permit_all(ssh, FORWARD_REMOTE);
More information about the openssh-unix-dev
mailing list