Skip to content

Commit 1a20d46

Browse files
CBL-Mariner-Botazurelinux-securityjykanase
authored
Merge PR "[AUTO-CHERRYPICK] [AutoPR- Security] Patch nodejs for CVE-2026-27135 [HIGH] - branch 3.0-dev" #16263
Co-authored-by: Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> Co-authored-by: jykanase <v-jykanase@microsoft.com>
1 parent e776732 commit 1a20d46

2 files changed

Lines changed: 122 additions & 1 deletion

File tree

SPECS/nodejs/CVE-2026-27135.patch

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
From 5c7df8fa815ac1004d9ecb9d1f7595c4d37f46e1 Mon Sep 17 00:00:00 2001
2+
From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
3+
Date: Wed, 18 Feb 2026 18:04:30 +0900
4+
Subject: [PATCH] Fix missing iframe->state validations to avoid assertion
5+
failure
6+
7+
Upstream Patch Reference: https://github.com/nghttp2/nghttp2/commit/5c7df8fa815ac1004d9ecb9d1f7595c4d37f46e1.patch
8+
---
9+
deps/nghttp2/lib/nghttp2_session.c | 40 +++++++++++++++++++++++++++---
10+
1 file changed, 36 insertions(+), 4 deletions(-)
11+
12+
diff --git a/deps/nghttp2/lib/nghttp2_session.c b/deps/nghttp2/lib/nghttp2_session.c
13+
index 004a4dff..3f1fab3a 100644
14+
--- a/deps/nghttp2/lib/nghttp2_session.c
15+
+++ b/deps/nghttp2/lib/nghttp2_session.c
16+
@@ -6079,6 +6079,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
17+
return rv;
18+
}
19+
20+
+ if (iframe->state == NGHTTP2_IB_IGN_ALL) {
21+
+ return (nghttp2_ssize)inlen;
22+
+ }
23+
+
24+
on_begin_frame_called = 1;
25+
26+
rv = session_process_headers_frame(session);
27+
@@ -6445,6 +6449,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
28+
if (nghttp2_is_fatal(rv)) {
29+
return rv;
30+
}
31+
+
32+
+ if (iframe->state == NGHTTP2_IB_IGN_ALL) {
33+
+ return (nghttp2_ssize)inlen;
34+
+ }
35+
}
36+
}
37+
38+
@@ -6701,6 +6709,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
39+
return rv;
40+
}
41+
42+
+ if (iframe->state == NGHTTP2_IB_IGN_ALL) {
43+
+ return (nghttp2_ssize)inlen;
44+
+ }
45+
+
46+
session_inbound_frame_reset(session);
47+
48+
break;
49+
@@ -7004,6 +7016,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
50+
if (nghttp2_is_fatal(rv)) {
51+
return rv;
52+
}
53+
+
54+
+ if (iframe->state == NGHTTP2_IB_IGN_ALL) {
55+
+ return (nghttp2_ssize)inlen;
56+
+ }
57+
} else {
58+
iframe->state = NGHTTP2_IB_IGN_HEADER_BLOCK;
59+
}
60+
@@ -7169,13 +7185,17 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
61+
rv = session->callbacks.on_data_chunk_recv_callback(
62+
session, iframe->frame.hd.flags, iframe->frame.hd.stream_id,
63+
in - readlen, (size_t)data_readlen, session->user_data);
64+
- if (rv == NGHTTP2_ERR_PAUSE) {
65+
- return (nghttp2_ssize)(in - first);
66+
- }
67+
-
68+
if (nghttp2_is_fatal(rv)) {
69+
return NGHTTP2_ERR_CALLBACK_FAILURE;
70+
}
71+
+
72+
+ if (iframe->state == NGHTTP2_IB_IGN_ALL) {
73+
+ return (nghttp2_ssize)inlen;
74+
+ }
75+
+
76+
+ if (rv == NGHTTP2_ERR_PAUSE) {
77+
+ return (nghttp2_ssize)(in - first);
78+
+ }
79+
}
80+
}
81+
}
82+
@@ -7256,6 +7276,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
83+
return rv;
84+
}
85+
86+
+ if (iframe->state == NGHTTP2_IB_IGN_ALL) {
87+
+ return (nghttp2_ssize)inlen;
88+
+ }
89+
+
90+
if (rv != 0) {
91+
busy = 1;
92+
93+
@@ -7274,6 +7298,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
94+
return rv;
95+
}
96+
97+
+ if (iframe->state == NGHTTP2_IB_IGN_ALL) {
98+
+ return (nghttp2_ssize)inlen;
99+
+ }
100+
+
101+
session_inbound_frame_reset(session);
102+
103+
break;
104+
@@ -7302,6 +7330,10 @@ nghttp2_ssize nghttp2_session_mem_recv2(nghttp2_session *session,
105+
return rv;
106+
}
107+
108+
+ if (iframe->state == NGHTTP2_IB_IGN_ALL) {
109+
+ return (nghttp2_ssize)inlen;
110+
+ }
111+
+
112+
session_inbound_frame_reset(session);
113+
114+
break;
115+
--
116+
2.45.4
117+

SPECS/nodejs/nodejs.spec

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Name: nodejs
55
# WARNINGS: MUST check and update the 'npm_version' macro for every version update of this package.
66
# The version of NPM can be found inside the sources under 'deps/npm/package.json'.
77
Version: 20.14.0
8-
Release: 13%{?dist}
8+
Release: 14%{?dist}
99
License: BSD AND MIT AND Public Domain AND NAIST-2003 AND Artistic-2.0
1010
Vendor: Microsoft Corporation
1111
Distribution: Azure Linux
@@ -36,6 +36,7 @@ Patch17: CVE-2025-59465.patch
3636
Patch18: CVE-2025-59466.patch
3737
Patch19: CVE-2026-21637.patch
3838
Patch20: CVE-2025-55130.patch
39+
Patch21: CVE-2026-27135.patch
3940
BuildRequires: brotli-devel
4041
BuildRequires: c-ares-devel
4142
BuildRequires: coreutils >= 8.22
@@ -148,6 +149,9 @@ make cctest
148149
%{_prefix}/lib/node_modules/*
149150

150151
%changelog
152+
* Fri Mar 20 2026 Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> - 20.14.0-14
153+
- Patch for CVE-2026-27135
154+
151155
* Mon Feb 02 2026 Azure Linux Security Servicing Account <azurelinux-security@microsoft.com> - 20.14.0-13
152156
- Patch for CVE-2025-55130
153157

0 commit comments

Comments
 (0)