summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2005-11-10 07:40:13 +0000
committerJonathan Kolb <jon@b0g.us>2005-11-10 07:40:13 +0000
commit3f1a03007279c07d1cfa8bc658d36059b13f66d2 (patch)
tree4b3b236fcd1aab4fd9c1779aeef06cfc779c0a9a
parent9f37f031576124ed88a366eb26b3cd3bdb32c034 (diff)
downloadnginx-3f1a03007279c07d1cfa8bc658d36059b13f66d2.tar.gz
Changes with nginx 0.3.9 10 Nov 2005v0.3.9
*) Bugfix: nginx considered URI as unsafe if two any symbols was between two slashes; bug appeared in 0.3.8.
-rw-r--r--CHANGES6
-rw-r--r--CHANGES.ru10
-rw-r--r--src/core/nginx.h2
-rw-r--r--src/http/ngx_http_parse.c6
4 files changed, 19 insertions, 5 deletions
diff --git a/CHANGES b/CHANGES
index 2584cd6de..9474cf07d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,10 @@
+Changes with nginx 0.3.9 10 Nov 2005
+
+ *) Bugfix: nginx considered URI as unsafe if two any symbols was
+ between two slashes; bug appeared in 0.3.8.
+
+
Changes with nginx 0.3.8 09 Nov 2005
*) Security: nginx now checks URI got from a backend in
diff --git a/CHANGES.ru b/CHANGES.ru
index 838204259..38dafcbc0 100644
--- a/CHANGES.ru
+++ b/CHANGES.ru
@@ -1,4 +1,10 @@
+Изменения в nginx 0.3.9 10.11.2005
+
+ *) Исправление: nginx считал небезопасными URI, в которых между двумя
+ слэшами находилось два любых символа; ошибка появилась в 0.3.8.
+
+
Изменения в nginx 0.3.8 09.11.2005
*) Безопасность: nginx теперь проверят URI, полученные от бэкенда в
@@ -32,8 +38,8 @@
nginx мог оставлять открытыми соединения и временные файлы с
запросами клиентов.
- *) Исправление: рабочие процессы не сбрасывал буферизированные логи при
- плавном выходе.
+ *) Исправление: рабочие процессы не сбрасывали буферизированные логи
+ при плавном выходе.
*) Исправление: если URI запроса изменялось с помощью rewrite, а затем
запрос проксировался в location, заданном регулярным выражением, то
diff --git a/src/core/nginx.h b/src/core/nginx.h
index 966d405b0..c498e0719 100644
--- a/src/core/nginx.h
+++ b/src/core/nginx.h
@@ -8,7 +8,7 @@
#define _NGINX_H_INCLUDED_
-#define NGINX_VER "nginx/0.3.8"
+#define NGINX_VER "nginx/0.3.9"
#define NGINX_VAR "NGINX"
#define NGX_OLDPID_EXT ".oldbin"
diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c
index 0001286c6..b2e2f9e3f 100644
--- a/src/http/ngx_http_parse.c
+++ b/src/http/ngx_http_parse.c
@@ -1056,7 +1056,7 @@ ngx_http_parse_unsafe_uri(ngx_http_request_t *r, ngx_str_t *uri,
/* detect "/../" */
- if (p[2] == '/') {
+ if (p[0] == '.' && p[1] == '.' && p[2] == '/') {
goto unsafe;
}
@@ -1070,7 +1070,9 @@ ngx_http_parse_unsafe_uri(ngx_http_request_t *r, ngx_str_t *uri,
/* detect "/.../" */
- if (p[3] == '/' || p[3] == '\\') {
+ if (p[0] == '.' && p[1] == '.' && p[2] == '.'
+ && (p[3] == '/' || p[3] == '\\'))
+ {
goto unsafe;
}
}