From df4cc629542e9e522b9cdf49b42ce735d4be4b2f Mon Sep 17 00:00:00 2001 From: Ryuhei Shima <65934663+islandryu@users.noreply.github.com> Date: Thu, 15 Jan 2026 09:38:09 +0900 Subject: [PATCH] zlib: validate write_result array length MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: https://github.com/nodejs/node/issues/61286 PR-URL: https://github.com/nodejs/node/pull/61342 Reviewed-By: René Reviewed-By: Anna Henningsen Reviewed-By: Luigi Pinca Reviewed-By: Gürgün Dayıoğlu --- src/node_zlib.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/node_zlib.cc b/src/node_zlib.cc index 05818affb1b..c93ec9c2253 100644 --- a/src/node_zlib.cc +++ b/src/node_zlib.cc @@ -732,6 +732,7 @@ class ZlibStream final : public CompressionStream { CHECK(args[4]->IsUint32Array()); Local array = args[4].As(); + CHECK_GE(array->Length(), 2); Local ab = array->Buffer(); uint32_t* write_result = static_cast(ab->Data()); @@ -805,6 +806,7 @@ class BrotliCompressionStream final : CHECK(args.Length() == 3 && "init(params, writeResult, writeCallback)"); CHECK(args[1]->IsUint32Array()); + CHECK_GE(args[1].As()->Length(), 2); uint32_t* write_result = reinterpret_cast(Buffer::Data(args[1])); CHECK(args[2]->IsFunction()); @@ -886,6 +888,7 @@ class ZstdStream final : public CompressionStream { ASSIGN_OR_RETURN_UNWRAP(&wrap, args.This()); CHECK(args[2]->IsUint32Array()); + CHECK_GE(args[2].As()->Length(), 2); uint32_t* write_result = reinterpret_cast(Buffer::Data(args[2])); CHECK(args[3]->IsFunction());