Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
xen.8005
CVE-2018-7550-qemuu-multiboot-OOB-access-while-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File CVE-2018-7550-qemuu-multiboot-OOB-access-while-loading-kernel-image.patch of Package xen.8005
While loading kernel via multiboot-v1 image, (flags & 0x00010000) indicates that multiboot header contains valid addresses to load the kernel image. In that, end of the data segment address 'mh_load_end_addr' should be less than the bss segment address 'mh_bss_end_addr'. Add check to validate that. Reported-by: CERT CC <address@hidden> Signed-off-by: Prasad J Pandit <address@hidden> --- hw/i386/multiboot.c | 4 ++++ 1 file changed, 4 insertions(+) Index: xen-4.4.4-testing/tools/qemu-xen-dir-remote/hw/i386/multiboot.c =================================================================== --- xen-4.4.4-testing.orig/tools/qemu-xen-dir-remote/hw/i386/multiboot.c +++ xen-4.4.4-testing/tools/qemu-xen-dir-remote/hw/i386/multiboot.c @@ -200,7 +200,13 @@ int load_multiboot(FWCfgState *fw_cfg, uint32_t mh_header_addr = ldl_p(header+i+12); uint32_t mh_load_end_addr = ldl_p(header+i+20); uint32_t mh_bss_end_addr = ldl_p(header+i+24); + mh_load_addr = ldl_p(header+i+16); + if (mh_load_end_addr > mh_bss_end_addr) { + fprintf(stderr, "invalid mh_load_end_addr address\n"); + exit(1); + } + uint32_t mb_kernel_text_offset = i - (mh_header_addr - mh_load_addr); uint32_t mb_load_size = 0; mh_entry_addr = ldl_p(header+i+28);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor