Re: [quicwg/base-drafts] HTTP/3 references QUIC Stream IDs directly, allowing illegal references (#3273)

Martin Thomson <> Thu, 05 December 2019 03:07 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 402C312018B for <>; Wed, 4 Dec 2019 19:07:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.382
X-Spam-Status: No, score=-6.382 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_IMAGE_ONLY_24=1.618, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id Q_wcPtfGT60W for <>; Wed, 4 Dec 2019 19:07:29 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id A3F0F120133 for <>; Wed, 4 Dec 2019 19:07:29 -0800 (PST)
Date: Wed, 04 Dec 2019 19:07:28 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1575515248; bh=8XVgiHFWWLbEHMAs4umfNjICcJO8vo3IEjhVV6A79Jo=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=gABkJ1AY9vS+mr1LQb/f2Lai0aBeNND5EXzon0Q4E3Ph6ZhrzPhddGdgzn3C5e6c4 uUoYBBd1VaJZ4U0OsDf5pPsNUsZVqfUAMVkdnA6hCrzIyaRlzird1qUWzIn/0Wx1jt mUUBkliiVuXCYB9LtOdfFUW7mOVgTx/GPmSgIaoA=
From: Martin Thomson <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/3273/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] HTTP/3 references QUIC Stream IDs directly, allowing illegal references (#3273)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5de87470e3461_2683fe905ccd96c13696"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 05 Dec 2019 03:07:31 -0000

There is I think an additional assumption here: that stream IDs are allocated in ascending order.  More or less.  That isn't a hard requirement, but it informs how effective GOAWAY is.

global varint max_request_stream_id = 0;

on handling(request):
    max_request_stream_id = max(max_request_stream_id, request.stream_id)

on sending(goaway):
    goaway.stream_id = max_request_stream_id
    for r in open requests:
        if r.stream_id < max_request_stream_id:

See, not especially complicated, but the extent to which you have to reset streams depends on the order in which stream IDs are allocated.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: