|
@@ -0,0 +1,30 @@
|
|
|
+core: Disallow Methods' registration at run time (.htaccess), they may
|
|
|
+be used only if registered at init time (httpd.conf).
|
|
|
+
|
|
|
+Calling ap_method_register() in children processes is not the right scope
|
|
|
+since it won't be shared for all requests.
|
|
|
+
|
|
|
+git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1807655 13f79535-47bb-0310-9956-ffa450edef68
|
|
|
+
|
|
|
+Fixes CVE-2017-9798: https://nvd.nist.gov/vuln/detail/CVE-2017-9798
|
|
|
+
|
|
|
+Downloaded from upstream repo:
|
|
|
+https://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/server/core.c?r1=1805223&r2=1807754&pathrev=1807754&view=patch
|
|
|
+
|
|
|
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
|
|
+
|
|
|
+--- a/server/core.c 2017/08/16 16:50:29 1805223
|
|
|
++++ b/server/core.c 2017/09/08 13:13:11 1807754
|
|
|
+@@ -2266,6 +2266,12 @@
|
|
|
+ /* method has not been registered yet, but resource restriction
|
|
|
+ * is always checked before method handling, so register it.
|
|
|
+ */
|
|
|
++ if (cmd->pool == cmd->temp_pool) {
|
|
|
++ /* In .htaccess, we can't globally register new methods. */
|
|
|
++ return apr_psprintf(cmd->pool, "Could not register method '%s' "
|
|
|
++ "for %s from .htaccess configuration",
|
|
|
++ method, cmd->cmd->name);
|
|
|
++ }
|
|
|
+ methnum = ap_method_register(cmd->pool,
|
|
|
+ apr_pstrdup(cmd->pool, method));
|
|
|
+ }
|