Внутри HTTP-сервера, встроенного в Node, обнаружена уязвимость

в 4:31, , рубрики: Node, node.js, nodejs, уязвимость, метки: , , , , ,

Внутри HTTP сервера, встроенного в Node, обнаружена уязвимостьМэтью Дэйли (Matthew Daley) выяснил, что в коде HTTP-сервера, встроенного в движок Node, есть ошибка или даже просто опечатка (используется «size» вместо «size_»), так что специально сформированным запросом к серверу можно добиться того, что сервер существенно переоценит реальный размер запроса и включит в него содержимое соседних чужих HTTP-запросов (например, частью переданной на сервер переменной станут чьи-нибудь чужие cookies; и если это будет переменная из числа тех, которые тотчас же выводятся на экран, то крякерская атака легко может оказаться успешною).

Всем пользователям Node версий 0.5.x и 0.6.x следует без промедления обновить Node до версии 0.6.17, а обладателям экспериментальных версий из ветки 0.7 следует обновиться до 0.7.8. (Версии 0.4.x не содержат этой ошибки, однако на вашем месте я бы их всё равно обновил, ибо они старьё.)

Об этом опубликовано оповещение во блоге Node.

Рекомендую заодно на этом примере поразмыслить вообще о том, что слишком близкие имена переменных часто являются источником неприятных, труднообнаружимых опечаток. Если у вас в коде есть переменная «time» и надобно создать ещё вторую, то постарайтеся назвать её не «time1», не «_time», не «dtime», а с учётом её смысла — в дýхе «finishedTime», или «deliveryTime», или «nextTime» — даже если имя получится несколько подлиннее и понеудобнее, чем получилося бы отличающееся одним символом.

Автор: Mithgol


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js