]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
Buffer overflow in drivers/xen/sys-hypervisor.c
authorJuergen Gross <jgross@suse.com>
Fri, 27 Mar 2026 13:13:38 +0000 (14:13 +0100)
committerJuergen Gross <jgross@suse.com>
Thu, 23 Apr 2026 13:32:51 +0000 (15:32 +0200)
commit27fdbab4221b375de54bf91919798d88520c6e28
tree07dbd4841752a8ef8145ce6bf201c13178919ab4
parent2e68039281932e6dc37718a1ea7cbb8e2cda42e6
Buffer overflow in drivers/xen/sys-hypervisor.c

The build id returned by HYPERVISOR_xen_version(XENVER_build_id) is
neither NUL terminated nor a string.

The first causes a buffer overflow as sprintf in buildid_show will
read and copy till it finds a NUL.

00000000  f4 91 51 f4 dd 38 9e 9d  65 47 52 eb 10 71 db 50  |..Q..8..eGR..q.P|
00000010  b9 a8 01 42 6f 2e 32                              |...Bo.2|
00000017

So use a memcpy instead of sprintf to have the correct value:

00000000  f4 91 51 f4 dd 00 9e 9d  65 47 52 eb 10 71 db 50  |..Q.....eGR..q.P|
00000010  b9 a8 01 42                                       |...B|
00000014

(the above have a hack to embed a zero inside and check it's
returned correctly).

This is XSA-485 / CVE-2026-31786

Fixes: 84b7625728ea ("xen: add sysfs node for hypervisor build id")
Signed-off-by: Frediano Ziglio <frediano.ziglio@citrix.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
drivers/xen/sys-hypervisor.c