Мэтью Дэйли (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» — даже если имя получится несколько подлиннее и понеудобнее, чем получилося бы отличающееся одним символом.
Также на этом примере вполне явствует, что если код проекта открыт и разработка ведётся открыто, то по виду коммита (такого,как вон тот для версий 0.6 или вон тот для 0.7) вдумчивому читателю бывает нетрудно догадаться о подлинной силе и значимости исправленной ошибки. Стало быть, скрывать её нет смысла, а надо как можно скорее и как можно шире распространить среди пользователей достаточно побудительный рассказ о необходимости обновления.
Блогозаписью на Хабрахабре я надеюсь внести в это распространение свою лепту.
Всем пользователям Node версий 0.5.x
Об этом опубликовано оповещение во блоге Node.
Рекомендую заодно на этом примере поразмыслить вообще о том, что слишком близкие имена переменных часто являются источником неприятных, труднообнаружимых опечаток. Если у вас в коде есть переменная
Также на этом примере вполне явствует, что если код проекта открыт и разработка ведётся открыто, то по виду коммита (такого,
Блогозаписью на Хабрахабре я надеюсь внести в это распространение свою лепту.