Skip to content

http2: reject non-latin1 client request values #7670

http2: reject non-latin1 client request values

http2: reject non-latin1 client request values #7670

Triggered via pull request June 5, 2026 06:50
Status Failure
Total duration 40m 10s
Artifacts 1

test-shared.yml

on: pull_request
Build slim tarball
1m 13s
Build slim tarball
aarch64-linux: Cache V8 build
23s
aarch64-linux: Cache V8 build
Matrix: build
Matrix: build-openssl
Fit to window
Zoom out
Zoom in

Annotations

18 errors
aarch64-linux: with shared openssl-1.1.1w
Process completed with exit code 2.
aarch64-linux: with shared openssl-1.1.1w: test/parallel/test-http2-response-splitting.js#L48
--- stderr --- node:internal/http2/util:135 throw new ERR_HTTP2_INVALID_HEADER_VALUE(value, name); ^ TypeError [ERR_HTTP2_INVALID_HEADER_VALUE]: Invalid value "/foo?lang=barčĊContent­Length: 0čĊčĊHTTP/1.1 200 OKčĊContent­Length: 20čĊLast­Modified: Mon, 27 Oct 2003 14:50:18 GMTčĊContent­Type: text/htmlčĊčĊ<html>Gotcha!</html>" for header "location" at assertValidHeaderValue (node:internal/http2/util:135:11) at processHeader (node:internal/http2/util:849:5) at buildNgHeaderString (node:internal/http2/util:869:7) at prepareResponseHeaders (node:internal/http2/core:2668:23) at ServerHttp2Stream.respond (node:internal/http2/core:3110:9) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js:48:10) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/common/index.js:510:15) at Http2Server.emit (node:events:509:20) at ServerHttp2Session.sessionOnStream (node:internal/http2/core:3353:19) at ServerHttp2Session.emit (node:events:509:20) { code: 'ERR_HTTP2_INVALID_HEADER_VALUE' } Node.js v27.0.0-pre Command: out/Release/node /home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js
aarch64-linux: with shared openssl-3.0.20
Process completed with exit code 2.
aarch64-linux: with shared openssl-3.0.20: test/parallel/test-http2-response-splitting.js#L48
--- stderr --- node:internal/http2/util:135 throw new ERR_HTTP2_INVALID_HEADER_VALUE(value, name); ^ TypeError [ERR_HTTP2_INVALID_HEADER_VALUE]: Invalid value "/foo?lang=barčĊContent­Length: 0čĊčĊHTTP/1.1 200 OKčĊContent­Length: 20čĊLast­Modified: Mon, 27 Oct 2003 14:50:18 GMTčĊContent­Type: text/htmlčĊčĊ<html>Gotcha!</html>" for header "location" at assertValidHeaderValue (node:internal/http2/util:135:11) at processHeader (node:internal/http2/util:849:5) at buildNgHeaderString (node:internal/http2/util:869:7) at prepareResponseHeaders (node:internal/http2/core:2668:23) at ServerHttp2Stream.respond (node:internal/http2/core:3110:9) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js:48:10) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/common/index.js:510:15) at Http2Server.emit (node:events:509:20) at ServerHttp2Session.sessionOnStream (node:internal/http2/core:3353:19) at ServerHttp2Session.emit (node:events:509:20) { code: 'ERR_HTTP2_INVALID_HEADER_VALUE' } Node.js v27.0.0-pre Command: out/Release/node /home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js
aarch64-linux: with shared boringssl-0.20260508.0
Process completed with exit code 2.
aarch64-linux: with shared boringssl-0.20260508.0: test/parallel/test-http2-response-splitting.js#L48
--- stderr --- node:internal/http2/util:135 throw new ERR_HTTP2_INVALID_HEADER_VALUE(value, name); ^ TypeError [ERR_HTTP2_INVALID_HEADER_VALUE]: Invalid value "/foo?lang=barčĊContent­Length: 0čĊčĊHTTP/1.1 200 OKčĊContent­Length: 20čĊLast­Modified: Mon, 27 Oct 2003 14:50:18 GMTčĊContent­Type: text/htmlčĊčĊ<html>Gotcha!</html>" for header "location" at assertValidHeaderValue (node:internal/http2/util:135:11) at processHeader (node:internal/http2/util:849:5) at buildNgHeaderString (node:internal/http2/util:869:7) at prepareResponseHeaders (node:internal/http2/core:2668:23) at ServerHttp2Stream.respond (node:internal/http2/core:3110:9) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js:48:10) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/common/index.js:510:15) at Http2Server.emit (node:events:509:20) at ServerHttp2Session.sessionOnStream (node:internal/http2/core:3353:19) at ServerHttp2Session.emit (node:events:509:20) { code: 'ERR_HTTP2_INVALID_HEADER_VALUE' } Node.js v27.0.0-pre Command: out/Release/node /home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js
aarch64-linux: with shared openssl-3.5.6
Process completed with exit code 2.
aarch64-linux: with shared openssl-3.5.6: test/parallel/test-http2-response-splitting.js#L48
--- stderr --- node:internal/http2/util:135 throw new ERR_HTTP2_INVALID_HEADER_VALUE(value, name); ^ TypeError [ERR_HTTP2_INVALID_HEADER_VALUE]: Invalid value "/foo?lang=barčĊContent­Length: 0čĊčĊHTTP/1.1 200 OKčĊContent­Length: 20čĊLast­Modified: Mon, 27 Oct 2003 14:50:18 GMTčĊContent­Type: text/htmlčĊčĊ<html>Gotcha!</html>" for header "location" at assertValidHeaderValue (node:internal/http2/util:135:11) at processHeader (node:internal/http2/util:849:5) at buildNgHeaderString (node:internal/http2/util:869:7) at prepareResponseHeaders (node:internal/http2/core:2668:23) at ServerHttp2Stream.respond (node:internal/http2/core:3110:9) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js:48:10) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/common/index.js:510:15) at Http2Server.emit (node:events:509:20) at ServerHttp2Session.sessionOnStream (node:internal/http2/core:3353:19) at ServerHttp2Session.emit (node:events:509:20) { code: 'ERR_HTTP2_INVALID_HEADER_VALUE' } Node.js v27.0.0-pre Command: out/Release/node /home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js
aarch64-linux: with shared openssl-4.0.0
Process completed with exit code 2.
aarch64-linux: with shared openssl-4.0.0: test/parallel/test-http2-response-splitting.js#L48
--- stderr --- node:internal/http2/util:135 throw new ERR_HTTP2_INVALID_HEADER_VALUE(value, name); ^ TypeError [ERR_HTTP2_INVALID_HEADER_VALUE]: Invalid value "/foo?lang=barčĊContent­Length: 0čĊčĊHTTP/1.1 200 OKčĊContent­Length: 20čĊLast­Modified: Mon, 27 Oct 2003 14:50:18 GMTčĊContent­Type: text/htmlčĊčĊ<html>Gotcha!</html>" for header "location" at assertValidHeaderValue (node:internal/http2/util:135:11) at processHeader (node:internal/http2/util:849:5) at buildNgHeaderString (node:internal/http2/util:869:7) at prepareResponseHeaders (node:internal/http2/core:2668:23) at ServerHttp2Stream.respond (node:internal/http2/core:3110:9) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js:48:10) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/common/index.js:510:15) at Http2Server.emit (node:events:509:20) at ServerHttp2Session.sessionOnStream (node:internal/http2/core:3353:19) at ServerHttp2Session.emit (node:events:509:20) { code: 'ERR_HTTP2_INVALID_HEADER_VALUE' } Node.js v27.0.0-pre Command: out/Release/node /home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js
aarch64-linux: with shared openssl-3.6.2
Process completed with exit code 2.
aarch64-linux: with shared openssl-3.6.2: test/parallel/test-http2-response-splitting.js#L48
--- stderr --- node:internal/http2/util:135 throw new ERR_HTTP2_INVALID_HEADER_VALUE(value, name); ^ TypeError [ERR_HTTP2_INVALID_HEADER_VALUE]: Invalid value "/foo?lang=barčĊContent­Length: 0čĊčĊHTTP/1.1 200 OKčĊContent­Length: 20čĊLast­Modified: Mon, 27 Oct 2003 14:50:18 GMTčĊContent­Type: text/htmlčĊčĊ<html>Gotcha!</html>" for header "location" at assertValidHeaderValue (node:internal/http2/util:135:11) at processHeader (node:internal/http2/util:849:5) at buildNgHeaderString (node:internal/http2/util:869:7) at prepareResponseHeaders (node:internal/http2/core:2668:23) at ServerHttp2Stream.respond (node:internal/http2/core:3110:9) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js:48:10) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/common/index.js:510:15) at Http2Server.emit (node:events:509:20) at ServerHttp2Session.sessionOnStream (node:internal/http2/core:3353:19) at ServerHttp2Session.emit (node:events:509:20) { code: 'ERR_HTTP2_INVALID_HEADER_VALUE' } Node.js v27.0.0-pre Command: out/Release/node /home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js
aarch64-darwin: with shared libraries
Process completed with exit code 2.
aarch64-darwin: with shared libraries: test/parallel/test-http2-response-splitting.js#L48
--- stderr --- node:internal/http2/util:135 throw new ERR_HTTP2_INVALID_HEADER_VALUE(value, name); ^ TypeError [ERR_HTTP2_INVALID_HEADER_VALUE]: Invalid value "/foo?lang=barčĊContent­Length: 0čĊčĊHTTP/1.1 200 OKčĊContent­Length: 20čĊLast­Modified: Mon, 27 Oct 2003 14:50:18 GMTčĊContent­Type: text/htmlčĊčĊ<html>Gotcha!</html>" for header "location" at assertValidHeaderValue (node:internal/http2/util:135:11) at processHeader (node:internal/http2/util:849:5) at buildNgHeaderString (node:internal/http2/util:869:7) at prepareResponseHeaders (node:internal/http2/core:2668:23) at ServerHttp2Stream.respond (node:internal/http2/core:3110:9) at Http2Server.<anonymous> (/Users/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js:48:10) at Http2Server.<anonymous> (/Users/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/common/index.js:510:15) at Http2Server.emit (node:events:509:20) at ServerHttp2Session.sessionOnStream (node:internal/http2/core:3353:19) at ServerHttp2Session.emit (node:events:509:20) { code: 'ERR_HTTP2_INVALID_HEADER_VALUE' } Node.js v27.0.0-pre Command: out/Release/node /Users/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js
x86_64-linux: with shared libraries
Process completed with exit code 2.
x86_64-linux: with shared libraries: test/parallel/test-http2-response-splitting.js#L48
--- stderr --- node:internal/http2/util:135 throw new ERR_HTTP2_INVALID_HEADER_VALUE(value, name); ^ TypeError [ERR_HTTP2_INVALID_HEADER_VALUE]: Invalid value "/foo?lang=barčĊContent­Length: 0čĊčĊHTTP/1.1 200 OKčĊContent­Length: 20čĊLast­Modified: Mon, 27 Oct 2003 14:50:18 GMTčĊContent­Type: text/htmlčĊčĊ<html>Gotcha!</html>" for header "location" at assertValidHeaderValue (node:internal/http2/util:135:11) at processHeader (node:internal/http2/util:849:5) at buildNgHeaderString (node:internal/http2/util:869:7) at prepareResponseHeaders (node:internal/http2/core:2668:23) at ServerHttp2Stream.respond (node:internal/http2/core:3110:9) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js:48:10) at Http2Server.<anonymous> (/home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/common/index.js:510:15) at Http2Server.emit (node:events:509:20) at ServerHttp2Session.sessionOnStream (node:internal/http2/core:3353:19) at ServerHttp2Session.emit (node:events:509:20) { code: 'ERR_HTTP2_INVALID_HEADER_VALUE' } Node.js v27.0.0-pre Command: out/Release/node /home/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js
x86_64-darwin: with shared libraries
Process completed with exit code 2.
x86_64-darwin: with shared libraries: test/parallel/test-http2-response-splitting.js#L48
--- stderr --- node:internal/http2/util:135 throw new ERR_HTTP2_INVALID_HEADER_VALUE(value, name); ^ TypeError [ERR_HTTP2_INVALID_HEADER_VALUE]: Invalid value "/foo?lang=barčĊContent­Length: 0čĊčĊHTTP/1.1 200 OKčĊContent­Length: 20čĊLast­Modified: Mon, 27 Oct 2003 14:50:18 GMTčĊContent­Type: text/htmlčĊčĊ<html>Gotcha!</html>" for header "location" at assertValidHeaderValue (node:internal/http2/util:135:11) at processHeader (node:internal/http2/util:849:5) at buildNgHeaderString (node:internal/http2/util:869:7) at prepareResponseHeaders (node:internal/http2/core:2668:23) at ServerHttp2Stream.respond (node:internal/http2/core:3110:9) at Http2Server.<anonymous> (/Users/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js:48:10) at Http2Server.<anonymous> (/Users/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/common/index.js:510:15) at Http2Server.emit (node:events:509:20) at ServerHttp2Session.sessionOnStream (node:internal/http2/core:3353:19) at ServerHttp2Session.emit (node:events:509:20) { code: 'ERR_HTTP2_INVALID_HEADER_VALUE' } Node.js v27.0.0-pre Command: out/Release/node /Users/runner/work/_temp/node-v27.0.0-nightly2026-06-0514e6289f3a-slim/test/parallel/test-http2-response-splitting.js

Artifacts

Produced during runtime
Name Size Digest
tarballs
46.4 MB
sha256:9db67cdba1cadb0521c1da501a009204873c896844287a9394c196534d91178a