The vulnerability CVE-2020-15778 occurs because the client-side 'scp' command can be made to construct a command string for the remote server that includes unsanitized shell metacharacters in the destination filename. The 'toremote' function in 'scp.c' is responsible for creating this command string (e.g., 'scp -t malicious_filename'). When this string is passed to the remote 'sshd' and then executed by the remote user's shell, the shell interprets any metacharacters (like backticks) in 'malicious_filename', leading to command injection. The 'main' function is involved as it calls 'toremote'. The 'sink' function on the remote side is what's invoked by 'scp -t', but the injection happens due to shell processing of its arguments before 'sink' fully takes control. The discoverer's information and the nature of 'scp' relying on shell argument passing support this. The vendor's statement about not wanting to break workflows by validating 'anomalous argument transfers' further indicates this is a known behavior related to how scp arguments are handled by the shell.