Can an SSH_MSG_EXT_INFO have zero entries?

Peter Gutmann <[email protected]> Fri, 31 Mar 2023 09:52:53 +0000
Newsgroups gmane.ietf.secsh
Message-ID <SY4PR01MB6251F6994B33DF60C212BE51EE8F9@SY4PR01MB6251.ausprd01.prod.outlook.com>
Someone has just reported an SSH implementation that sends SSH_MSG_EXT_INFO
with zero extensions present, i.e.:

    byte       SSH_MSG_EXT_INFO (value 7)
    uint32     0
    (No extensions present in the extensions message)

The RFC says:

   Implementations MUST accept well-formed SSH_MSG_EXT_INFO messages up to the
   maximum packet length they accept.

but never defines what a well-formed SSH_MSG_EXT_INFO message actually is.  In
my case I've defined one with zero entries as not well-formed, since it's a
message used to communicate extensions that communicates no actual extensions.

Should a message like this be accepted?

Peter.