[source] samba: fix CVE-2017-7494

LEDE Commits lede-commits at lists.infradead.org
Wed May 24 06:48:27 PDT 2017


stintel pushed a commit to source.git, branch lede-17.01:
https://git.lede-project.org/51db1f5a9a3ecd5cc2c5de724641c4636a0a86e2

commit 51db1f5a9a3ecd5cc2c5de724641c4636a0a86e2
Author: Stijn Tintel <stijn at linux-ipv6.be>
AuthorDate: Wed May 24 14:44:03 2017 +0200

    samba: fix CVE-2017-7494
    
    Signed-off-by: Stijn Tintel <stijn at linux-ipv6.be>
    (cherry picked from commit 3f0d3d12da77d8833a725f99f6fa08640678a1ae)
---
 .../samba36/patches/028-CVE-2017-7494-v3-6.patch   | 29 ++++++++++++++++++++++
 .../samba36/patches/310-remove_error_strings.patch |  8 +++---
 2 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/package/network/services/samba36/patches/028-CVE-2017-7494-v3-6.patch b/package/network/services/samba36/patches/028-CVE-2017-7494-v3-6.patch
new file mode 100644
index 0000000..17b020d
--- /dev/null
+++ b/package/network/services/samba36/patches/028-CVE-2017-7494-v3-6.patch
@@ -0,0 +1,29 @@
+From d2bc9f3afe23ee04d237ae9f4511fbe59a27ff54 Mon Sep 17 00:00:00 2001
+From: Volker Lendecke <vl at samba.org>
+Date: Mon, 8 May 2017 21:40:40 +0200
+Subject: [PATCH] CVE-2017-7494: rpc_server3: Refuse to open pipe names with /
+ inside
+
+Bug: https://bugzilla.samba.org/show_bug.cgi?id=12780
+
+Signed-off-by: Volker Lendecke <vl at samba.org>
+Reviewed-by: Jeremy Allison <jra at samba.org>
+Reviewed-by: Stefan Metzmacher <metze at samba.org>
+---
+ source3/rpc_server/srv_pipe.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/source3/rpc_server/srv_pipe.c
++++ b/source3/rpc_server/srv_pipe.c
+@@ -473,6 +473,11 @@ bool is_known_pipename(const char *cli_f
+ 		pipename += 1;
+ 	}
+ 
++	if (strchr(pipename, '/')) {
++		DEBUG(1, ("Refusing open on pipe %s\n", pipename));
++		return false;
++	}
++
+ 	if (lp_disable_spoolss() && strequal(pipename, "spoolss")) {
+ 		DEBUG(10, ("refusing spoolss access\n"));
+ 		return false;
diff --git a/package/network/services/samba36/patches/310-remove_error_strings.patch b/package/network/services/samba36/patches/310-remove_error_strings.patch
index ee3460d..596a327 100644
--- a/package/network/services/samba36/patches/310-remove_error_strings.patch
+++ b/package/network/services/samba36/patches/310-remove_error_strings.patch
@@ -303,7 +303,7 @@
  
 --- a/source3/rpc_server/srv_pipe.c
 +++ b/source3/rpc_server/srv_pipe.c
-@@ -991,7 +991,6 @@ static bool api_pipe_bind_req(struct pip
+@@ -996,7 +996,6 @@ static bool api_pipe_bind_req(struct pip
  	if (!NT_STATUS_IS_OK(status)) {
  		DEBUG(1, ("api_pipe_bind_req: invalid pdu: %s\n",
  			  nt_errstr(status)));
@@ -311,7 +311,7 @@
  		goto err_exit;
  	}
  
-@@ -1325,7 +1324,6 @@ bool api_pipe_bind_auth3(struct pipes_st
+@@ -1330,7 +1329,6 @@ bool api_pipe_bind_auth3(struct pipes_st
  	if (!NT_STATUS_IS_OK(status)) {
  		DEBUG(1, ("api_pipe_bind_auth3: invalid pdu: %s\n",
  			  nt_errstr(status)));
@@ -319,7 +319,7 @@
  		goto err;
  	}
  
-@@ -1483,7 +1481,6 @@ static bool api_pipe_alter_context(struc
+@@ -1488,7 +1486,6 @@ static bool api_pipe_alter_context(struc
  	if (!NT_STATUS_IS_OK(status)) {
  		DEBUG(1, ("api_pipe_alter_context: invalid pdu: %s\n",
  			  nt_errstr(status)));
@@ -327,7 +327,7 @@
  		goto err_exit;
  	}
  
-@@ -2057,7 +2054,6 @@ static bool process_request_pdu(struct p
+@@ -2062,7 +2059,6 @@ static bool process_request_pdu(struct p
  	if (!NT_STATUS_IS_OK(status)) {
  		DEBUG(1, ("process_request_pdu: invalid pdu: %s\n",
  			  nt_errstr(status)));



More information about the lede-commits mailing list