Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Kernel measurement does not measure the buffer that's used #9

Closed
mjg59 opened this issue Jul 20, 2015 · 3 comments · Fixed by #33
Closed

Kernel measurement does not measure the buffer that's used #9

mjg59 opened this issue Jul 20, 2015 · 3 comments · Fixed by #33
Labels

Comments

@mjg59
Copy link

mjg59 commented Jul 20, 2015

grub-core/loader/i386/linux.c appears to read the kernel from disk into a series of buffers for later execution, and then reads the kernel again to perform a measurement. A sufficiently malicious storage device might provide a backdoored kernel on the first read attempt, followed by the correct kernel on the second read attempt. The measurement would then appear correct.

@neusdan neusdan added the bug label Jul 22, 2015
@alexanderkjeldaas
Copy link

@mjg59 Have you looked at other parts that read code from disk to see if this bug exists in other places?

@mjg59
Copy link
Author

mjg59 commented Aug 3, 2015

I'm afraid I haven't - I noticed this one because I made exactly the same mistake in the UEFI Secure Boot implementation.

@neusdan
Copy link
Contributor

neusdan commented Aug 4, 2015

This bug also exists in other places. For example the GRUB2 modules measurement or ntldr / chainloader measurement.

I'm at the moment on vacation. I'll try to fix this afterwards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants