[Spice-devel] [PATCH spice-protocol] stream-device: Specify how padding shoud be inside new structures

Christophe de Dinechin christophe.de.dinechin at gmail.com
Fri Feb 23 10:37:13 UTC 2018



> On 23 Feb 2018, at 11:31, Christophe Fergeau <cfergeau at redhat.com> wrote:
> 
> On Fri, Feb 23, 2018 at 10:11:46AM +0000, Frediano Ziglio wrote:
>> Depending on how structures are initialised in the code is
>> possible that implicit padding bytes are not initialised
>> causing possible information leaks as the entire structure
>> with all padding is sent through device/network.
>> 
>> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
>> ---
>> spice/stream-device.h | 2 ++
>> 1 file changed, 2 insertions(+)
>> 
>> diff --git a/spice/stream-device.h b/spice/stream-device.h
>> index 2e7c50e..b2f83b5 100644
>> --- a/spice/stream-device.h
>> +++ b/spice/stream-device.h
>> @@ -48,6 +48,8 @@
>>  * containing integers up to 64 bit.
>>  * All numbers are in little endian format.
>>  *
>> + * For security reasons structures should not contain implicit paddings.
>> + *
> 
> Isn't padding inserted by the compiler going to be platform-dependent anyway?

That is my concern too.

> I would say that all structures used in the protocol should be packed.

I would also specify that what is sent is little-endian. While on x86, there is only one endianness, some platforms, e.g. Itanium, are bi-endian, so it is theoretically possible for the host to be big and the guest to be little for example. OK, I know, Itanium… :-)

> 
> Christophe
> 
>>  * The protocol can be defined by these states:
>>  * - Initial. Device just opened. Guest should wait
>>  *   for a message from the host;
>> -- 
>> 2.14.3
>> 
>> _______________________________________________
>> Spice-devel mailing list
>> Spice-devel at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/spice-devel
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/spice-devel



More information about the Spice-devel mailing list