diff -ru dnsdist-1.9.12.orig/doh3.cc dnsdist-1.9.12.CVE-2026-33595/doh3.cc --- dnsdist-1.9.12.orig/doh3.cc 2026-03-13 16:09:16.000000000 +0100 +++ dnsdist-1.9.12.CVE-2026-33595/doh3.cc 2026-04-03 15:43:56.586156717 +0200 @@ -699,6 +699,8 @@ ++clientState.nonCompliantQueries; ++frontend.d_errorResponses; h3_send_response(conn, streamID, 400, msg); + conn.d_streamBuffers.erase(streamID); + conn.d_headersBuffers.erase(streamID); }; auto& headers = conn.d_headersBuffers.at(streamID); @@ -856,8 +858,11 @@ } case QUICHE_H3_EVENT_FINISHED: case QUICHE_H3_EVENT_RESET: - case QUICHE_H3_EVENT_PRIORITY_UPDATE: + conn.d_headersBuffers.erase(streamID); + conn.d_streamBuffers.erase(streamID); + break; case QUICHE_H3_EVENT_GOAWAY: + case QUICHE_H3_EVENT_PRIORITY_UPDATE: break; } } diff -ru dnsdist-1.9.12.orig/doq.cc dnsdist-1.9.12.CVE-2026-33595/doq.cc --- dnsdist-1.9.12.orig/doq.cc 2026-03-13 16:09:16.000000000 +0100 +++ dnsdist-1.9.12.CVE-2026-33595/doq.cc 2026-04-03 15:43:56.586259843 +0200 @@ -630,6 +630,7 @@ ++dnsdist::metrics::g_stats.nonCompliantQueries; ++clientState.nonCompliantQueries; quiche_conn_stream_shutdown(conn.d_conn.get(), streamID, QUICHE_SHUTDOWN_WRITE, static_cast(DOQ_Error_Codes::DOQ_PROTOCOL_ERROR)); + conn.d_streamBuffers.erase(streamID); return; } @@ -652,6 +653,7 @@ ++dnsdist::metrics::g_stats.nonCompliantQueries; ++clientState.nonCompliantQueries; quiche_conn_stream_shutdown(conn.d_conn.get(), streamID, QUICHE_SHUTDOWN_WRITE, static_cast(DOQ_Error_Codes::DOQ_PROTOCOL_ERROR)); + conn.d_streamBuffers.erase(streamID); return; } @@ -661,6 +663,7 @@ ++dnsdist::metrics::g_stats.nonCompliantQueries; ++clientState.nonCompliantQueries; quiche_conn_stream_shutdown(conn.d_conn.get(), streamID, QUICHE_SHUTDOWN_WRITE, static_cast(DOQ_Error_Codes::DOQ_PROTOCOL_ERROR)); + conn.d_streamBuffers.erase(streamID); return; } DEBUGLOG("Dispatching query");