NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-amd64/58366: KASLR broken
The following reply was made to PR port-amd64/58366; it has been noted by GNATS.
From: Harold Gutch <logix%foobar.franken.de@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: port-amd64-maintainer%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost
Subject: Re: port-amd64/58366: KASLR broken
Date: Sat, 29 Jun 2024 17:42:49 +0200
On Tue, Jun 25, 2024 at 06:05:01PM +0000, Taylor R Campbell wrote:
> > Date: Tue, 25 Jun 2024 18:07:44 +0200
> > From: Harold Gutch <logix%foobar.franken.de@localhost>
> >=20
> > On Tue, Jun 25, 2024 at 01:36:07PM +0000, Taylor R Campbell wrote:
> > > Can you please try the attached patch?
> >=20
> > Thanks, that gets past prekern but then panics:
> >=20
> > [ 1.4884345] trap type 4 code 0 rip 0xffffffffacefd336 cs 0x8 rflags 0x=
> 246 cr2 0 ilevel 0x6 rsp 0xffffffffe9e85a80
> > [ 1.5005255] curlwp 0xffffffffa0be8480 pid 0.0 lowest kstack 0xffffffff=
> e9e812c0
> > kernel: protection fault trap, code=3D0
> > Stopped in pid 0.0 (system) at netbsd:aes_sse2_selftest+0xb9: ???
> > aes_sse2_selftest() at netbsd:aes_sse2_selftest+0xb9
>
> Can you try the patch on top of the first revision you found with
> broken prekern?
>
> If that works, time for another round of bisection, I guess!
Redoing round two now points to
https://mail-index.netbsd.org/source-changes/2024/03/09/msg150314.html
With a KASLR kernel from just before that commit I ran a 10 reboot
loop in qemu and I also went through a few additional cold boots. I
didn't run into that panic a single time.
... but once again, I don't see how that might be related, so this
might be a red herring. I'll run another few boot cycles with a
kernel from just before this commit and see what happens.
In the meanwhile:
1) Output from a *successful* pkboot /netbsd.KASLR -vx:
[ 1.2098422] acpicpu0: ACPI CPUs started
[ 1.2500817] IPsec: Initialized Security Association Processing.
[ 1.2998684] aes: Intel SSE2 bitsliced
[ 1.3103742] chacha: x86 SSE2 ChaCha
[ 1.3103742] adiantum: self-test passed
[ 1.3198766] aes_ccm: self-test passed
[ 1.3198766] blake2s: self-test passed
[ 2.3400158] waiting for devices: atabus0 atabus1
[ 3.3400611] waiting for devices: atabus0 atabus1
[ 4.3100719] wd0 at atabus0 drive 0
[ 4.3100719] wd0: <QEMU HARDDISK>
[ 4.3100719] wd0: drive supports 16-sector PIO transfers, LBA48 addressing
[ 4.3100719] wd0: 5120 MB, 10402 cyl, 16 head, 63 sec, 512 bytes/sect x 10485760 sectors
[ 4.3400349] waiting for devices: atabus0 atabus1 wd0
[ 4.3700128] wd0: GPT GUID: 2e1ad449-2ee1-451a-8189-e947f29f9634
[ 4.3800016] dk0 at wd0: "3f2e9cef-87be-4a09-939c-51e87ce238e4", 8388480 blocks at 64, type: ffs
[ 4.3800016] dk1 at wd0: "337fa9b6-c1c5-4fc0-a64e-711efac5b191", 2097152 blocks at 8388544, type: swap
[ 4.3900440] wd0: 32-bit data port
[ 4.3900440] wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
[ 4.3900440] wd0(piixide0:0:0): using PIO mode 4, DMA mode 2 (using DMA)
[ 4.3999894] atapibus0 at atabus1: 2 targets
[ 4.4099915] cd0 at atapibus0 drive 0: <QEMU DVD-ROM, QM00003, 2.5+> cdrom removable
[ 4.4099915] cd0: 32-bit data port
[ 4.4099915] cd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
[ 4.4099915] cd0(piixide0:1:0): using PIO mode 4, DMA mode 2 (using DMA)
[ 4.4200051] crypto: assign driver 0, flags 2
[ 4.4200051] crypto: driver 0 registers alg 1 flags 0 maxoplen 0
[...]
[ 4.4399868] crypto: driver 0 registers alg 22 flags 0 maxoplen 0
[ 4.4399868] cgd: self-test aes-xts-256
[ 4.4399868] cgd: self-test aes-xts-512
[ 4.4399868] cgd: self-test aes-cbc-128
[ 4.4399868] cgd: self-test aes-cbc-256
[ 4.4399868] cgd: self-test 3des-cbc-192
[ 4.4499762] cgd: self-test blowfish-cbc-448
[ 4.4499762] cgd: self-test aes-cbc-128 (encblkno8)
[ 4.4499762] cgd: self-tests passed
[ 4.4499762] swwdog0: software watchdog initialized
2) Output from a failed pkgboot /netbsd.KASLR -vx:
[ 1.2131918] acpicpu0: ACPI CPUs started
[ 1.2430493] IPsec: Initialized Security Association Processing.
[ 1.2730054] fatal protection fault in supervisor mode
[ 1.2730054] trap type 4 code 0 rip 0xffffffffe78c60a6 cs 0x8 rflags 0x246 cr2 0 ilevel 0x6 rsp 0xffffffff91ed6a80
[ 1.2730054] curlwp 0xffffffffc1f00f00 pid 0.0 lowest kstack 0xffffffff91ed22c0
kernel: protection fault trap, code=0
Stopped in pid 0.0 (system) at netbsd:aes_sse2_selftest+0xb9: ???
aes_sse2_selftest() at netbsd:aes_sse2_selftest+0xb9
aes_sse2_probe() at netbsd:aes_sse2_probe+0x14
aes_selftest() at netbsd:aes_selftest+0x26
aes_modcmd() at netbsd:aes_modcmd+0xf7
module_do_builtin() at netbsd:module_do_builtin+0x17d
module_do_builtin() at netbsd:module_do_builtin+0x132
module_init_class() at netbsd:module_init_class+0x1cf
main() at netbsd:main+0x4fc
start_prekern() at netbsd:start_prekern+0xf5
?() at 100641
ds 0
es 1
fs 8
gs f1ef
rdi 0
rsi 2
rbp ffffffff91ed6ac0
rbx fffffffff6ab4714
rdx 0
rcx 0
rax 0
db{0}> show page
PAGE 0xffffffffe78c60a6:
flags=0x6601f173<CLEAN,DIRTY,PAGEOUT,RELEASED,FAKE,ZERO,FILE,READAHEAD,FREE,MARKER,PAGER1>
pqflags=0xf66d04d<INTENT_0,INTENT_SET,INTENT_QUEUED,PRIVATE3,WANTED>
uobject=0x6a0f66c86f0f66c8, uanon=0x7e0f416655c8700f, offset=0xf66c97e0f4166c8
[ 1.2851297] panic: kernel diagnostic assertion "upm != UVM_PHYSSEG_TYPE_INVALID" failed: file "/home/h/netbsd/git/src/sys/uvm/uvm_page.c", line 2015
[ 1.2851297] cpu0: Begin traceback...
[ 1.2851297] vpanic() at netbsd:vpanic+0x173
[ 1.2851297] kern_assert() at netbsd:kern_assert+0x4b
[ 1.2851297] uvm_page_lookup_freelist() at netbsd:uvm_page_lookup_freelist+0x59
[ 1.2851297] uvm_page_printit() at netbsd:uvm_page_printit+0xc1
[ 1.2851297] db_command() at netbsd:db_command+0x123
[ 1.2851297] db_command_loop() at netbsd:db_command_loop+0xa4
[ 1.2851297] db_trap() at netbsd:db_trap+0xcc
[ 1.2851297] kdb_trap() at netbsd:kdb_trap+0x106
[ 1.2851297] trap() at netbsd:trap+0x28f
[ 1.2851297] --- trap (number 4) ---
[ 1.2851297] aes_sse2_selftest() at netbsd:aes_sse2_selftest+0xb9
[ 1.2851297] aes_sse2_probe() at netbsd:aes_sse2_probe+0x14
[ 1.2851297] aes_selftest() at netbsd:aes_selftest+0x26
[ 1.2851297] aes_modcmd() at netbsd:aes_modcmd+0xf7
[ 1.2851297] module_do_builtin() at netbsd:module_do_builtin+0x17d
[ 1.2851297] module_do_builtin() at netbsd:module_do_builtin+0x132
[ 1.2851297] module_init_class() at netbsd:module_init_class+0x1cf
[ 1.2851297] main() at netbsd:main+0x4fc
[ 1.2851297] start_prekern() at netbsd:start_prekern+0xf5
[ 1.2851297] ?() at 100641
[ 1.2851297] cpu0: End traceback...
[ 1.2851297] fatal breakpoint trap in supervisor mode
[ 1.2851297] trap type 1 code 0 rip 0xffffffffae63c405 cs 0x8 rflags 0x202 cr2 0 ilevel 0x8 rsp 0xffffffff91ed6480
[ 1.2851297] curlwp 0xffffffffc1f00f00 pid 0.0 lowest kstack 0xffffffff91ed22c0
Stopped in pid 0.0 (system) at netbsd:breakpoint+0x5: leave
db{0}>
Harold
Home |
Main Index |
Thread Index |
Old Index