dropbear: forbid multiple "command=" options
authorKonstantin Demin <rockdrilla@gmail.com>
Tue, 16 Oct 2018 13:31:42 +0000 (16:31 +0300)
committerHans Dedecker <dedeckeh@gmail.com>
Thu, 8 Nov 2018 10:07:05 +0000 (11:07 +0100)
cherry-pick upstream commit ed4c38ba467618a7193f4e5dec1d5f0169e0c227

Signed-off-by: Konstantin Demin <rockdrilla@gmail.com>
package/network/services/dropbear/patches/011-forbid-multiple-command-options.patch [new file with mode: 0644]

diff --git a/package/network/services/dropbear/patches/011-forbid-multiple-command-options.patch b/package/network/services/dropbear/patches/011-forbid-multiple-command-options.patch
new file mode 100644 (file)
index 0000000..e3a2dfc
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/svr-authpubkeyoptions.c
++++ b/svr-authpubkeyoptions.c
+@@ -168,6 +168,11 @@ int svr_add_pubkey_options(buffer *optio
+               if (match_option(options_buf, "command=\"") == DROPBEAR_SUCCESS) {
+                       int escaped = 0;
+                       const unsigned char* command_start = buf_getptr(options_buf, 0);
++
++                      if (ses.authstate.pubkey_options->forced_command) {
++                              goto bad_option;
++                      }
++
+                       while (options_buf->pos < options_buf->len) {
+                               const char c = buf_getbyte(options_buf);
+                               if (!escaped && c == '"') {