Hi again Chris,

On 04/23/2020 05:29 AM, Christophe Leroy wrote:
Hi,

Christophe

Le 23/04/2020 à 03:13, Chris Packham a écrit :
Hi,

I'm just in the process of updating our products to Linux v5.6 and one
of them produces a new warning message from the kernel about busybox
(v1.31.1)

   kernel: process '/bin/busybox' started with executable stack

Got similar discussion about klibc 2 monthes ago, look at https://lists.zytor.com/archives/klibc/2020-February/004271.html


The target in question is a mips64 (octeon3). We have other targets
(mips32, armv7, ppc32, ppc64) which don't complain.

Some searching led me to

https://lore.kernel.org/lkml/20191208171918.GC19716@avx2/

Which suggests I should be filing a bug report with the vendor so here
I am.

Did you have a look into busybox bugzilla ? https://bugs.busybox.net/


Here's some readelf output from the binary

Can you perform "objdump -x " on your binary ?


I tried readelf on my busybox binary (ppc32), I get:


Elf file type is EXEC (Executable file)
Entry point 0x100046bc
There are 8 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  PHDR           0x000034 0x10000034 0x10000034 0x00100 0x00100 R E 0x4
  INTERP         0x000134 0x10000134 0x10000134 0x0000d 0x0000d R   0x1
      [Requesting program interpreter: /lib/ld.so.1]
  LOAD           0x000000 0x10000000 0x10000000 0xbbb40 0xbbb40 R E 0x10000
  LOAD           0x0bbb40 0x100cbb40 0x100cbb40 0x0029f 0x01c58 RWE 0x10000
  DYNAMIC        0x0bbb90 0x100cbb90 0x100cbb90 0x000e8 0x000e8 RW  0x4
  NOTE           0x000144 0x10000144 0x10000144 0x00020 0x00020 R   0x4
  GNU_EH_FRAME   0x0bba18 0x100bba18 0x100bba18 0x00024 0x00024 R   0x4
  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RW  0x10


As a comparison, for the klibc topic I was mentionning earlier, I get:


Elf file type is EXEC (Executable file)
Entry point 0x10000140
There are 5 program headers, starting at offset 52

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  PHDR           0x000034 0x10000034 0x10000034 0x000a0 0x000a0 R E 0x4
  INTERP         0x0000d4 0x100000d4 0x100000d4 0x0002a 0x0002a R   0x1
[Requesting program interpreter: /lib/klibc-WRQRzWcFMzsfxuuIUVGHxDcgmhA.so]
  LOAD           0x000000 0x10000000 0x10000000 0x10928 0x10928 R E 0x10000
  LOAD           0x010928 0x10020928 0x10020928 0x00144 0x04880 RW  0x10000
  GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE 0x10


Which here clearly shows the GNU_STACK is RWE in the problematic case.

In your readelfs, we can't see the stack.

Christophe
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to