This is still an issue with grsecurity-3.1-4.4.2-201602182048.patch.
With the stock grsec patch I will trigger this reliably on every boot before I get a login prompt on the console.
- Code: Select all
[ 25.672156] PAX: size overflow detected in function virtnet_receive drivers/net/virtio_net.c:360 cicus.794_435 max, count: 123, decl: page_to_skb; num: 4; context: fndecl;
[ 25.673760] CPU: 1 PID: 463 Comm: ip Not tainted 4.4.2-grsec-guest #1
[ 25.675416] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
[ 25.677428] 53d0c28798196ab6 53d0c28798196ab6 0000000000000000 ffffffff8c2e52a7
[ 25.679639] ffff880333349805 53d0c28798196ab6 ffffffff8c6bdfed ffffffff8c167fd1
[ 25.681926] 0000000000000092 ffff88033fc43ec0 0000000000000600 0000000000000000
[ 25.684169] Call Trace:
[ 25.684857] <IRQ> [<ffffffff8c2e52a7>] ? 0xffffffff8c2e52a7
[ 25.686346] [<ffffffff8c167fd1>] ? 0xffffffff8c167fd1
[ 25.688185] [<ffffffff8c3e082e>] ? 0xffffffff8c3e082e
[ 25.689596] [<ffffffff8c0aca67>] ? 0xffffffff8c0aca67
[ 25.690971] [<ffffffff8c3e10d8>] ? 0xffffffff8c3e10d8
[ 25.692189] [<ffffffff8c3e10d8>] ? 0xffffffff8c3e10d8
[ 25.693256] [<ffffffff8c45947e>] ? 0xffffffff8c45947e
[ 25.694426] [<ffffffff8c0814ee>] ? 0xffffffff8c0814ee
[ 25.695593] [<ffffffff8c570bfc>] ? 0xffffffff8c570bfc
[ 25.696744] <EOI> [<ffffffff8c08165c>] ? 0xffffffff8c08165c
[ 25.698076] [<ffffffff8c0816d2>] ? 0xffffffff8c0816d2
[ 25.699244] [<ffffffff8c3e0542>] ? 0xffffffff8c3e0542
[ 25.700309] [<ffffffff8c45a5f4>] ? 0xffffffff8c45a5f4
[ 25.701382] [<ffffffff8c45a873>] ? 0xffffffff8c45a873
[ 25.702658] [<ffffffff8c45a92d>] ? 0xffffffff8c45a92d
[ 25.703718] [<ffffffff8c46a453>] ? 0xffffffff8c46a453
[ 25.704777] [<ffffffff8c46b4ca>] ? 0xffffffff8c46b4ca
[ 25.705835] [<ffffffff8c46b2a4>] ? 0xffffffff8c46b2a4
[ 25.707052] [<ffffffff8c46b25b>] ? 0xffffffff8c46b25b
[ 25.708165] [<ffffffff8c2d8e5f>] ? 0xffffffff8c2d8e5f
[ 25.709370] [<ffffffff8c085dbd>] ? 0xffffffff8c085dbd
[ 25.710481] [<ffffffff8c4691cd>] ? 0xffffffff8c4691cd
[ 25.711548] [<ffffffff8c478d69>] ? 0xffffffff8c478d69
[ 25.712633] [<ffffffff8c46901d>] ? 0xffffffff8c46901d
[ 25.713754] [<ffffffff8c47c910>] ? 0xffffffff8c47c910
[ 25.715337] [<ffffffff8c46900b>] ? 0xffffffff8c46900b
[ 25.716800] [<ffffffff8c47ab6a>] ? 0xffffffff8c47ab6a
[ 25.717918] [<ffffffff8c47b7a7>] ? 0xffffffff8c47b7a7
[ 25.719351] [<ffffffff8c43b9cd>] ? 0xffffffff8c43b9cd
[ 25.720649] [<ffffffff8c43cddc>] ? 0xffffffff8c43cddc
[ 25.721823] [<ffffffff8c43e289>] ? 0xffffffff8c43e289
[ 25.722990] [<ffffffff8c43e289>] ? 0xffffffff8c43e289
[ 25.724140] [<ffffffff8c56f4f0>] ? 0xffffffff8c56f4f0
[ 25.725283] Kernel panic - not syncing: Aiee, killing interrupt handler!
[ 25.727118] Kernel Offset: 0xb000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[ 25.729517] ---[ end Kernel panic - not syncing: Aiee, killing interrupt handler!
With your debugging patch applied I am no longer able to trigger the above. The vm boots successfully, login prompt is displayed, and I get a bunch of log spam from the debug printk. However, when I try to SSH into the vm I trigger this panic reliably:
- Code: Select all
[ 53.791837] PAX: size overflow detected in function virtnet_receive drivers/net/virtio_net.c:408 cicus.754_395 max, count: 93, decl: skb_add_rx_frag; num: 4; context: fndecl;
[ 53.794975] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.4.2-grsec-guest #2
[ 53.796448] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
[ 53.798565] dbc8fb5f43ba9861 dbc8fb5f43ba9861 0000000000000000 ffffffffbd2e52a7
[ 53.800516] 0000000000000900 dbc8fb5f43ba9861 ffffffffbd6bdfed ffffffffbd167fd1[ 53.802275] PAX overflow: buf: ffff88032f27aa00 page_address(page): ffff88032f278000
[ 53.803973]
[ 53.804553] ffff8800bb9b6f00 ffff88033fc83e80 ffff8800bb9b6f00 0000000000004200
[ 53.806497] Call Trace:
[ 53.807117] <IRQ> [<ffffffffbd2e52a7>] ? 0xffffffffbd2e52a7
[ 53.808455] [<ffffffffbd167fd1>] ? 0xffffffffbd167fd1
[ 53.809595] [<ffffffffbd3e0bdc>] ? 0xffffffffbd3e0bdc
[ 53.810725] [<ffffffffbd3e111e>] ? 0xffffffffbd3e111e
[ 53.811858] [<ffffffffbd3e111e>] ? 0xffffffffbd3e111e
[ 53.812990] [<ffffffffbd4594c4>] ? 0xffffffffbd4594c4
[ 53.814136] [<ffffffffbd0814ee>] ? 0xffffffffbd0814ee
[ 53.815268] [<ffffffffbd081792>] ? 0xffffffffbd081792
[ 53.816398] [<ffffffffbd004562>] ? 0xffffffffbd004562
[ 53.817532] [<ffffffffbd570013>] ? 0xffffffffbd570013
[ 53.818666] <EOI> [<ffffffffbd00a0d6>] ? 0xffffffffbd00a0d6
[ 53.820004] [<ffffffffbd032776>] ? 0xffffffffbd032776
[ 53.821142] [<ffffffffbd00a0db>] ? 0xffffffffbd00a0db
[ 53.822273] [<ffffffffbd0ad476>] ? 0xffffffffbd0ad476
[ 53.822359] PAX overflow: buf: ffff88032f71aa00 page_address(page): ffff88032f718000
[ 53.822362] PAX: size overflow detected in function virtnet_receive drivers/net/virtio_net.c:408 cicus.754_395 max, count: 93, decl: skb_add_rx_frag; num: 4; context: fndecl;
[ 53.829525] [<ffffffffbd02b473>] ? 0xffffffffbd02b473
[ 53.830895] [<ffffffffbd029d63>] ? 0xffffffffbd029d63
[ 53.832262] CPU: 6 PID: 0 Comm: swapper/6 Not tainted 4.4.2-grsec-guest #2
[ 53.832263] Kernel panic - not syncing: Aiee, killing interrupt handler!
[ 53.834159] Kernel Offset: 0x3c000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff)
[ 53.837762] ---[ end Kernel panic - not syncing: Aiee, killing interrupt handler!
The location of the panic has moved to the "buf - page_address(page);" in the main loop. After applying a similar printk before that I get even more logspam, but I am no longer able to trigger either panic. Removing the printks cause both to return. Do you have any suggestions for tracking this down more usefully?