Graylog Authenticated HTTP inputs do ingest message even if Authorization header is missing or has wrong value
Description
Graylog is a free and open log management platform. Starting with 6.1, HTTP Inputs can be configured to check if a specified header is present and has a specified value to authenticate HTTP-based ingestion. Unfortunately, even though in cases of a missing header or a wrong value the correct HTTP response (401) is returned, the message will be ingested nonetheless. To mitigate the vulnerability, disable http-based inputs and allow only authenticated pull-based inputs. This vulnerability is fixed in 6.1.9.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
org.graylog2:graylog2-serverMaven | >= 6.1.0, < 6.1.9 | 6.1.9 |
Affected products
1- Range: >= 6.1.0, < 6.1.9
Patches
131bc13d3cd6fMerge commit from fork
3 files changed · +28 −1
changelog/unreleased/GHSA-q7g5-jq6p-6wvx.toml+2 −0 added@@ -0,0 +1,2 @@ +type = "s" +message = "Fixed authentication issue for HTTP inputs. [GHSA-q7g5-jq6p-6wvx](https://github.com/Graylog2/graylog2-server/security/advisories/GHSA-q7g5-jq6p-6wvx)"
graylog2-server/src/main/java/org/graylog2/inputs/transports/netty/HttpHandler.java+1 −0 modified@@ -61,6 +61,7 @@ protected void channelRead0(ChannelHandlerContext ctx, HttpRequest request) thro final String suppliedAuthHeaderValue = request.headers().get(authorizationHeader); if (isBlank(suppliedAuthHeaderValue) || !suppliedAuthHeaderValue.equals(authorizationHeaderValue)) { writeResponse(channel, keepAlive, httpRequestVersion, HttpResponseStatus.UNAUTHORIZED, origin); + return; } }
graylog2-server/src/test/java/org/graylog2/inputs/transports/netty/HttpHandlerTest.java+25 −1 modified@@ -16,6 +16,9 @@ */ package org.graylog2.inputs.transports.netty; +import io.netty.buffer.ByteBuf; +import io.netty.channel.ChannelHandlerContext; +import io.netty.channel.SimpleChannelInboundHandler; import io.netty.channel.embedded.EmbeddedChannel; import io.netty.handler.codec.http.DefaultFullHttpRequest; import io.netty.handler.codec.http.DefaultHttpRequest; @@ -235,7 +238,8 @@ private void testAuthentication(String expectedAuthHeader, String expectedAuthHe httpRequest.content().writeBytes(GELF_MESSAGE); - channel = new EmbeddedChannel(new HttpHandler(true, expectedAuthHeader, expectedAuthHeaderValue, "/gelf")); + final DownstreamHandler downstreamHandler = new DownstreamHandler(); + channel = new EmbeddedChannel(new HttpHandler(true, expectedAuthHeader, expectedAuthHeaderValue, "/gelf"), downstreamHandler); channel.writeInbound(httpRequest); channel.finish(); @@ -248,5 +252,25 @@ private void testAuthentication(String expectedAuthHeader, String expectedAuthHe assertThat(headers.get(ACCESS_CONTROL_ALLOW_CREDENTIALS)).isEqualTo("true"); assertThat(headers.get(ACCESS_CONTROL_ALLOW_HEADERS)).isEqualTo("Authorization, Content-Type"); assertThat(headers.get(CONNECTION)).isEqualTo(HttpHeaderValues.CLOSE.toString()); + if (expectedStatus == HttpResponseStatus.ACCEPTED) { + assertThat(downstreamHandler.received).isTrue(); + }else if (expectedStatus == HttpResponseStatus.UNAUTHORIZED) { + assertThat(downstreamHandler.received).isFalse(); + } else { + throw new AssertionError("Unexpected status: " + expectedStatus); + } + } + + /** + * Downstream handler for confirming that authorization failures halt message flow, and that message flow continues + * for authentication successes. + */ + private class DownstreamHandler extends SimpleChannelInboundHandler<ByteBuf> { + public boolean received = false; + + @Override + protected void channelRead0(ChannelHandlerContext channelHandlerContext, io.netty.buffer.ByteBuf httpRequest) throws Exception { + this.received = true; + } } }
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
4- github.com/advisories/GHSA-q7g5-jq6p-6wvxghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-30373ghsaADVISORY
- github.com/Graylog2/graylog2-server/commit/31bc13d3cd6f550ec83473d0f8666cd3ebf50f10ghsax_refsource_MISCWEB
- github.com/Graylog2/graylog2-server/security/advisories/GHSA-q7g5-jq6p-6wvxghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.