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]
Date:   Wed, 13 May 2020 18:00:28 +0200
From:   Arnd Bergmann <arnd@...db.de>
To:     Kalle Valo <kvalo@...eaurora.org>
Cc:     linux-wireless <linux-wireless@...r.kernel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: gcc-10: kernel stack is corrupted and fails to boot

On Wed, May 13, 2020 at 5:31 PM Kalle Valo <kvalo@...eaurora.org> wrote:
> Arnd Bergmann <arnd@...db.de> writes:
> > On Wed, May 13, 2020 at 2:57 PM Kalle Valo <kvalo@...eaurora.org> wrote:
> >>
> >> Arnd Bergmann <arnd@...db.de> writes:
> >>
> >> > If you share your .config, I can try reproducing with that as well.
> >> > Once there is a reproducer in qemu, it should be trivial to step
> >> > through it using gdb.
> >>
> >> I have attached the .config I used with GCC 10.1. If you are able to
> >> test it please do let me know how it went.
> >
> > Yes, I see the same problem now, but have not investigated
> > any further.
>
> Great, so it's not a problem due to my setup.

I investigated a little more: This does happen with 'defconfig'
after all, in my first try I must have missed the '-smp 2' argument
to qemu, and it ended up working correctly with just one CPU
but fails now.

Stepping through the boot process, I see where it crashes
in start_secondary:

|        /* to prevent fake stack check failure in clock setup */
|        boot_init_stack_canary();
|
|        x86_cpuinit.setup_percpu_clockev();
|
|        wmb();
|        cpu_startup_entry(CPUHP_AP_ONLINE_IDLE);

The call to cpu_startup_entry() does not succeed, instead
it jumps to __stack_chk_fail() from there.

      Arnd

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ