lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120706120750.GA8970@aepfle.de>
Date:	Fri, 6 Jul 2012 14:07:50 +0200
From:	Olaf Hering <olaf@...fle.de>
To:	Daniel Kiper <dkiper@...-space.pl>
Cc:	kexec@...ts.infradead.org, xen-devel@...ts.xensource.com,
	linux-kernel@...r.kernel.org
Subject: Re: incorrect layout of globals from head_64.S during kexec boot

On Fri, Jul 06, Daniel Kiper wrote:

> Copy is done a few times durnig kexec/kdump but the most important
> in this case, I think, is in relocate_kernel() function (look for
> rep movsl or rep movsq and code around it). But I am a bit surprised
> that kernel is decompressing itself. I always thought that it is done
> during kexec/kdump load phase but maybe I am wrong. Could you send
> me more info about your Linux Kernel version, kexec-tools version
> and exact commands which you are using to load/exececute kernel?

Its kexec-tools and kernel mainline, but it happens also with older
versions of both. kexec works fine with the forward ported version of
xenlinux.

kexec -l bzImage --ramdisk=/boot/initrd-3.5.0-rc5-bug694863+ '--command-line=root=/dev/disk/by-label/sles11sp1_full
sysrq=yes
panic=9
oops=panic
console=ttyS0,115200
log_buf_len=16M
ignore_loglevel
initcall_debug
debug earlyprintk=serial,ttyS0,115200' -t bzImage --console-serial --serial=ttyS0 --serial-baud=115200 --debug
kexec -e


As Jan pointed out, the copying is done in
arch/x86/boot/compressed/misc.c. But adding some debug to inspect
*output in parse_elf() shows that the second entry in program headers is
already shifted by 44 bytes in my testing, the others are shifted by the
same amount.

Program Headers:
  Type           Offset   VirtAddr           PhysAddr           FileSiz  MemSiz   Flg Align
  LOAD           0x200000 0xffffffff81000000 0x0000000001000000 0xa3b000 0xa3b000 R E 0x200000
  LOAD           0xe00000 0xffffffff81c00000 0x0000000001c00000 0x05b0e8 0x05b0e8 RW  0x200000
  LOAD           0x1000000 0x0000000000000000 0x0000000001c5c000 0x012c40 0x012c40 RW  0x200000
  LOAD           0x106f000 0xffffffff81c6f000 0x0000000001c6f000 0x087000 0x702000 RWE 0x200000
  NOTE           0x82d5bc 0xffffffff8162d5bc 0x000000000162d5bc 0x00017c 0x00017c     0x4


That makes me wonder wether kexec-tools is the culprit.

Olaf
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ