CveTest
Тестовый пример для воспроизведения краха Node.JS V0.10.31 v8 backport CVE-2013-6668.
Тест вызывает хранимую процедуру SQL ("GetSomething") для получения данных из таблицы ("Table1") в базе данных "SQLDB". Крах происходит, когда возвращается более 52 строк и после нескольких вызовов той же процедуры.
Окружение
- Windows 7 64-bit
- MS SQL 2005
- Node.JS V0.10.31 x64
- tedious node module V1.4.3 или более ранняя версия
Тесты с различными вариантами Node
- Node в release-режиме: скрипт просто неожиданно завершается без какого-либо явного вывода ошибки.
- Node в debug-режиме: получаем assertion и стек вызовов.
- Node в debug-режиме с временным патчем, предложенным в Node.JS Issue #8208: крах остаётся, как указано выше.
- Release-режим работает нормально.
- Возникающее assertion находится в HInstruction::Verify(), который доступен только в DEBUG-сборке. Таким образом, альтернативные сборки release-режима, по-видимому, не страдают от патча CVE.
- Node V0.10.31 с deps/v8 из V0.10.30: краха нет, работает нормально.
Таким образом, похоже, что именно backport-патч v8 CVE-2013-6668 вызывает проблему.
Возможно связано