Bug 14052 - Incorrect parsing X-Forwarded-For header with multiple IPs
Summary: Incorrect parsing X-Forwarded-For header with multiple IPs
Status: CLOSED WORKSFORME
Alias: None
Product: Sisyphus
Classification: Development
Component: apache2-mod_rpaf (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Boris Savelev
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-01-17 11:41 MSK by Nikolay A. Fetisov
Modified: 2009-04-09 23:51 MSD (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nikolay A. Fetisov 2008-01-17 11:41:42 MSK
При прохождении запроса через несколько прокси-серверов в заголовке 
X-Forwarded-For может содержаться не один IP, а их список (с разделителями ',' 
или ';'). Т.е., например, в случае
  client -> Squid1 -> Squid2 -> nginx -> Apache
и использовании в конфигурации nginx конструкции 
  proxy_set_header  X-Forwarded-For   $proxy_add_x_forwarded_for;
значением X-Forwarded-For будет строка
"Client_IP, Squid1_IP, Squid2_IP"

mod_rpaf (как 0.5-alt3, так и 0.6) устанавливает REMOTE_ADDR равным всей строке 
X-Forwarded-For, что приводит к использованию _первого_ адреса из списка - 
который может быть как из диапазона частных сетей, так и легко 
сфальсифицированным клиентом.
При использовании authz_host_module для ограничения доступа к ресурсам такое 
поведение может привести к нежелательным последствиям.

Следует использовать последний адрес в цепочке, как делает mod_realip 
(http://sysoev.ru/mod_realip/readme.html).
Comment 1 Nikolay A. Fetisov 2008-12-12 11:08:54 MSK
Для 0.6-alt1 оно по-прежнему актуально.
Comment 2 Boris Savelev 2009-01-10 16:10:41 MSK
похоже
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=377190
на это?
Если да, то я патч утяну-)
Comment 3 Nikolay A. Fetisov 2009-01-12 10:58:25 MSK
Похоже, что оно.

И заодно, подобное для X-Forwarded-Host делает Debian'овский 040_multiple_hostnames.patch.diff .
Comment 4 Boris Savelev 2009-01-12 13:34:08 MSK
(In reply to comment #3)
> Похоже, что оно.
> 
приложил вроде. программист из меня не очень надо проверить.

> И заодно, подобное для X-Forwarded-Host делает Debian'овский 040_multiple_hostnames.patch.diff .
> 
этот патч для модуля первого апача.
Comment 5 Boris Savelev 2009-04-09 23:51:06 MSD
жалоб нет, видимо работает