Комментарии
10
Это что же там происходит с ключами, начинающимися с #
? eval? call_user_func? И сколько же там таких мест, что вместо нормального исправления приходится делать глобальный sanitize по белым спискам?
По-видимому, нашли одно, но закрыли, на всякий случай, намертво. Или это сделано чтобы сложнее было понять где именно баг, тем самым отсрочить создание эксплойта.
Я, кажется, немножко понял.
Drupal Form API Reference:
https://api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7.x
И вот примерно такое:
https://github.com/drupal/drupal/commit/a3f84c7782c6bc858e9fa01c16a39361faef15c0
Да, видимо оно:
//includes/form.inc
$form_state['input'] = $form_state['method'] == 'get' ? $_GET : $_POST;

PoC: index.php?page['#payload']=home.php
Это не сработает.
Дырявое корыто!
D8 — сплошное разочарование.
Что-то похоже перестраховались друпальщики, PoC так и нет https://greysec.net/showthread.php?tid=2912&page=4
Видимо если дыра и есть, то в очень нетривиальном месте. Коду больше 10 лет, сотни человек его постоянно разрабатывают и десятки тысяч активно используют, а обнаружили только сейчас.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Критическая уязвимость в ядре Drupal версий 6, 7 и 8