На форумах Reddit опубликовали копию закрытого обсуждения критической уязвимости CVE-2012-1823 в конфигурациях PHP-CGI, которая была обнаружена в январе 2012 года, а нормальный патч для неё ещё не готов. По чистой случайности обсуждение этой уязвимости пометили как открытое — и его сразу скопировали на Reddit, так что информация о баге стала достоянием общественности. В январе 2012 года уязвимость обнаружили специалисты компании Eindbazen. Причиной бага является то, что в 2004 году разработчики PHP зачем-то убрали из кода проверку на знак ‘=’ в строке запроса. Согласно CGI RFC, в случае отсутствия знака ‘=’ в строке запроса, сервер обязан воспринимать эту строку как набор символов, а не как команду. Code: search-string = search-word *( "+" search-word ) search-word = 1*schar schar = xunreserved | escape | xreserved xunreserved = alpha | digit | xsafe | extra xsafe = "$" | "-" | "_" | "." xreserved = ";" | "/" | "?" | ":" | "@" | "&" Однако, с 2004 года в PHP убрали эту проверку, так что теперь в некоторых конфигурациях сервера и обработчика запросов аргумент вроде ?-s в URL любого php-документа воспринимается как прямая команда -s к бинарнику php-cgi. Более того, таким способом можно направить к PHP любое количество параметров, приводящие к показу исходников скриптов, исполнению произвольного кода и т.д. От такой атаки не спасают ни safe_mode, ни allow_url_include, ни какие-то другие защитные опции ini. PHP Group выпустила обновленные версии PHP 5.3.12 и PHP 5.4.2, которые должны закрывать уязвимость, но обе содержат баг, позволяющий легко обойти сделанный патч. Новый фикс выйдет в самое ближайшее время. Дата: 05.05.2012 http://www.xakep.ru/post/58659/
Все отлично работает! Домены палить не стану! Не в обиду... З.Ы. И внимательно читайте первый пост, там описано в каком случае сработает бага. Вы что и правда думаете, что на всех хостингах оно работать будет?