The Utf8DecoderBase::WriteUtf16Slow function in unicode-decoder.cc in Google V8, as used in Node.js before 0.12.6, io.js before 1.8.3 and 2.x before 2.3.3, and other products, does not verify that there is memory available for a UTF-16 surrogate pair, which allows remote attackers to cause a denial of service (memory corruption) or possibly have unspecified other impact via a crafted byte sequence.
https://medium.com/%40iojs/important-security-upgrades-for-node-js-and-io-js-8ac14ece5852
https://github.com/joyent/node/issues/25583
https://codereview.chromium.org/1226493003