running ~/.ssh/rc doesn't use users shell or file's interpreter (Security issue?)

Damien Miller djm at mindrot.org
Thu Sep 5 17:17:16 AEST 2019


On Tue, 3 Sep 2019, L A Walsh wrote:

> I have an rc script and ran across what appears to be a bug.
> 
> In the rc script, I have the start line:
> #!/bin/bash, as well as it seems to ignore the user's shell.
> 
> While one might argue that 'rc' is not executed, but sourced,
> at the very least it seems it should use the user's listed
> shell.
> 
> If I have a user setup with 'rbash', 'rsh', for example,
> ssh would seem to ignore that and use /bin/sh.

The user rc file is actually run using the user's shell since 2001, though
indirectly:

>     snprintf(cmd, sizeof cmd, "%s -c '%s %s'",
>         shell, _PATH_BSHELL, _PATH_SSH_USER_RC);
>     f = popen(cmd, "w");

So restricted shells do have a chance to intervene.

I don't think it would be possible to change how this is executed as doing
so would potentially break a bunch of working setups in difficult to debug
ways.

-d


More information about the openssh-unix-dev mailing list