On Thu, Jun 12, 2014 at 1:29 PM, H. Peter Anvin <hpa@xxxxxxxxx> wrote: > On 06/12/2014 01:27 PM, Kees Cook wrote: >>> >>> Any way we can make them work together instead? >> >> I'm sure there is, but I don't know the solution. :) >> >> At the very least this gets us one step closer (we can build them together). >> > > But it is really invasive. Well, I don't agree there. I actually would like to be able to turn off hibernation support on distro kernels regardless of kASLR, so I think this is really killing two birds with one stone. > I have to admit to being somewhat fuzzy on what the core problem with > hibernation and kASLR is... in both cases there is a set of pages that > need to be installed, some of which will overlap the loader kernel. > What am I missing? I don't know how resume works, but I have assumed that the newly loaded kernel stays in memory and pulls in the vmalloc, kmalloc, modules, and userspace memory maps from disk. Since these things can easily contain references to kernel text, if the newly loaded kernel has moved with regard to the hibernated image, everything breaks. IIUC, this is similar why you can't rebuild your kernel and resume from a different version. Potential solutions might be to do some kind of kexec-ish second kernel load that puts it in the "right" place, based on what's stored in the on-disk image. It sounds extremely non-trivial, and isn't something I will have time to work on in the foreseeable future. Making them both build together, however, that I can do. :) -Kees -- Kees Cook Chrome OS Security -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html