https://bugzilla.mindrot.org/show_bug.cgi?id=2283

kpcyrd <kpc...@archlinux.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kpc...@archlinux.org

--- Comment #12 from kpcyrd <kpc...@archlinux.org> ---
There's a writeup on the reproducible-builds mailing list from
September 2023 that (ab-)uses this ssh quirk as an example
underhanded-eval gadget (the rest of that writeup is not relevant to
this issue):

https://lists.reproducible-builds.org/pipermail/rb-general/2023-September/003075.html

There's a missed opportunity in that writeup because even when passing
the output of `git describe` through it's own argument it's going to
get remotely eval'd:

ssh 'some-server' './foo.bin' '--' '$(id>pwned)'

While it's true that ssh is not a programming language, with
command-line interfaces there's usually an assumption that you can
trivially pass opaque strings from one program to another, this is not
the case with ssh however. A user would usually expect this to be
executed as:

./foo.bin '--' '$(id>pwned)'

on the remote server, with all bytes passed as-is to argv and no
shell-eval taking place. In shell scripting, this would be considered
safe-and-sound to pass opaque data:

./foo.bin -- "$@"

However, this is not and might get you hacked:

ssh 'some-server' -- ./foo.bin -- "$@"

> I'm looking for an example of something that could be done with what you're 
> asking for but can't be done other ways.

If I made an eval-based json parser I could argue it's the caller's
fault and safe use of my function "can be done" if you try hard enough.

I understand the compatibility concerns, but please reconsider.

-- 
You are receiving this mail because:
You are watching someone on the CC list of the bug.
You are watching the assignee of the bug.
_______________________________________________
openssh-bugs mailing list
openssh-bugs@mindrot.org
https://lists.mindrot.org/mailman/listinfo/openssh-bugs

Reply via email to