summaryrefslogtreecommitdiffstats
path: root/src/openvpn/platform.h
diff options
context:
space:
mode:
authorDavid Sommerseth <davids@redhat.com>2012-10-25 14:22:30 +0200
committerDavid Sommerseth <davids@redhat.com>2012-10-31 13:56:37 +0100
commit0563473601abfbf2142bfa0ca5b863c5aa7953a2 (patch)
treef646317d4f3bdc8b5096fb2b7a05e9d5c659f926 /src/openvpn/platform.h
parent9885f57e3ac8d2e32ba20ca84f6bdd0a1a995eac (diff)
downloadopenvpn-0563473601abfbf2142bfa0ca5b863c5aa7953a2.tar.gz
openvpn-0563473601abfbf2142bfa0ca5b863c5aa7953a2.tar.xz
openvpn-0563473601abfbf2142bfa0ca5b863c5aa7953a2.zip
Remove the support for using system() when executing external programs or scripts
This patch removes the support for the system() call, and enforces the usage of execve() on the *nix platform and CreateProcessW() on Windows. This is to enhance the overall security when calling external scripts. Using system() is prone to shell expansions, which may lead to security breaches. Which is also why the execve() approach has been the default since commit a82813527551f0e79c6d6ed5a9c1162e3c171bcf which re-introduced the system() in Nov. 2008. After having asked on the mailing list and checked around on the IRC channels, the genereal consensus is that very few uses system() these days. The only annoyance I've been made aware of is that this will now require adding a full path to the script interpreter together with the script, and not just put in the script name alone. But to just use the script name in Windows, you had to configure --script-security with the 'system' flag earlier too. So my conclusion is that it's better to add a full path to the script interpreter in Windows and raise the overal security with OpenVPN, than to continue to have a possible potentially risky OpenVPN configuration just to make life "easier" for Windows script users. Removal of the system() call, also solves a nasty bug related to the usage of putenv() on the *nix platforms. For more information please see: http://thread.gmane.org/gmane.network.openvpn.devel/7090 https://community.openvpn.net/openvpn/ticket/228 Trac-ticket: 228 Signed-off-by: David Sommerseth <davids@redhat.com> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <1351539352-17371-1-git-send-email-dazo@users.sourceforge.net> URL: http://article.gmane.org/gmane.network.openvpn.devel/7114
Diffstat (limited to 'src/openvpn/platform.h')
-rw-r--r--src/openvpn/platform.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/openvpn/platform.h b/src/openvpn/platform.h
index 7bd2067..7c0a4d7 100644
--- a/src/openvpn/platform.h
+++ b/src/openvpn/platform.h
@@ -113,10 +113,8 @@ void platform_mlockall (bool print_msg); /* Disable paging */
int platform_chdir (const char* dir);
-/* interpret the status code returned by system()/execve() */
+/* interpret the status code returned by execve() */
bool platform_system_ok (int stat);
-bool platform_system_executed (int stat);
-int platform_system(const char *command);
int platform_access (const char *path, int mode);