Brad Spengler
grsecurity.net/~spender · Personal blog · on HN since 2010
Brad Spengler (spender), grsecurity developer, posts Linux security exploits, interview notes, and the odd joke image.
What HN saysCommenters cite his interview notes as a critique of Linux security practices, such as undisclosed fixes, and as a sign he's frustrated with upstream.
16HN people shared it
13linked it in comments
3stories submitted
201story points
3 years agolast shared
2010people per year2026
Most-shared posts
- 1Grsecurity Developer Spender's Feelings on the State of Linux Security5 people · 199 points · first shared 2015 · 76 comments on HN
- 2Wait for KASLR to Be Effective Exploit1 people · 2 points · first shared 2018 · discussion on HN
- 3Homepage1 people · first shared 2015
- 4Exploit21 people · first shared 2013
- 5Lost selinux coloring book page1.gif1 people · first shared 2017
- 664bit dos.c1 people · first shared 2010
- 7Msr32.c1 people · first shared 2013
- 8Lost selinux coloring book page2.gif1 people · first shared 2017
- 9Logs1 people · first shared 2013
- 10Jit prot.diff1 people · first shared 2012
- 11Logs21 people · first shared 2013
- 12Exploit.c1 people · first shared 2018
- 1364bit dos.c1 people · first shared 2016
- 14Uderef1 people · first shared 2014
- 15Mac security sesamestreet.jpg1 people · first shared 2014
What HN people wrote when they linked it
zx2c4 · 2013-05-19
> you gave me an example.
Ahh sorry. Well to continue along that example, evidently it breaks out of lots of things -- https://grsecurity.net/~spender/logs.txt
> On PaX, the kernel supports utilizing the NX bit on x86-64 and has for quite a while now. Not using a system supporting the NX bit or at least PaX/Exec Shield is pretty stupid.
Not going to try to parse this, but you appear to be very mistaken. Wikipedia PaX.
> VMs are not entirely isolated from the host system
Correct, hence the parenthetical in the OP. That sysret bug was a great one.
SEJeff · 2017-11-15
https://grsecurity.net/~spender/interview_notes.txt he seems to admit defeat in what he is doing and upstream here more or less.
dchest · 2017-03-03
From @lattera on Twitter:
here's a couple lost pages found by the grsecurity folks:
https://grsecurity.net/~spender/pics/lost_selinux_coloring_book_page1.…
https://grsecurity.net/~spender/pics/lost_selinux_coloring_book_page2.…
:)
i4k · 2016-04-21
Linux being secure is a fallacy too.
Spender talks about it for a long time:
https://grsecurity.net/~spender/interview_notes.txt
Linux developers fix security bugs in irresponsible ways, saying nothing about the attack vector or CVE's involved. Sometimes multiple vulnerabilities are addressed in the same patch, making hard to track the fix.
For more information see the exploit below:
https://grsecurity.net/~spender/exploits/64bit_dos.c
The list of kernel vulnerabilities involving namespaces is bigger each day, as the paper shows, but the industry still uses "container" and "security" in the same quotes.
ak217 · 2015-11-06
Related to the recent interview notes by Brad Spender: https://grsecurity.net/~spender/interview_notes.txt
IMO it's scary to hear Linus say that "security is just stupid bugs" and that he doesn't think about containers much (container/namespace security and functionality is a big and quickly emerging part of the kernel security landscape). Call it a lack of vision or whatever, but I think he should be doing more to architect for security and to recruit, place and reward talented people into security lead positions in the kernel community.
adamzochowski · 2015-08-27
I think "spendy" is his irc nick.
And "spender" is his grsec machine nick https://www.grsecurity.net/~spender/
dmix · 2014-12-17
> This is likely to be easy to exploit for privilege escalation, except on systems with SMAP or UDEREF
Another reminder why everyone should be using https://grsecurity.net which provides these mitigations to the Linux kernel via patches. GRSecurity has had SMAP aka KERNEXEC for a long time as well as UDEREF https://grsecurity.net/~spender/uderef.txt
If you keep any sensitive data on a Linux server you should seriously consider grsec.
Even last week there was an ASLR bypass posted on OSS-security which of-course grsec already protected you against http://seclists.org/oss-sec/2014/q4/908
There is a lot of drama around the fact Linux core devs don't adopt these patches by default. But regardless Linux is pretty insecure by default and grsec makes privesc via various classes of exploits significantly harder.
dnet · 2014-09-14
Reminded me of this diagram: https://grsecurity.net/~spender/pics/mac_security_sesamestreet.jpg
mjg59 · 2013-08-22
A variant on http://grsecurity.net/~spender/msr32.c would have worked up until the capability check was added. Capabilities will help you, but if your business model is built on the assumption that the kernel performs capabilities checks everywhere it should then you really ought to be actively reviewing kernel entry points yourself.
zurn · 2013-01-21
> With SELinux root can build systems which are so secure that root himself cannot hack them.
Sounds like your administrator would be well served to spend more time studying real-world vulnerabilities and less time focusing on SELinux :)
See eg. http://grsecurity.net/~spender/exploits/exploit2.txt
jbangert · 2012-11-20
As taken from spenders twitter, here are the relevant parts of the patch:
http://grsecurity.net/~spender/jit_prot.diff
mfukar · 2010-09-20
Oh, you're talking about regression testing. While you have a point, I'd like to point out a recent vulnerability [1] that would likely fail many a test for two reasons:
- The bug is not concrete. It's not entirely in the kernel, and it's not entirely in userspace.
- The developers have a poor understanding of the bug. The current "fix" only mitigates the problem. There are system configurations where it can still be exploited. There are other issues [2] that arise from large address space management that are waiting to be fixed because of this.
But I agree that regression testing for the whole kernel tree should probably be implemented. (for the various subsystems, many developers develop their own test suites)
[1] http://theinvisiblethings.blogspot.com/2010/08/skeletons-hidden-in-lin…
[2] http://grsecurity.net/~spender/64bit_dos.c
MaulingMonkey · 2018-03-24
> No compiler is going to go out of its way to compile an increment into the machine's usual increment instruction and an additional overflow check that does whatever, just because it can
What people are actually worried about is when the compiler starts removing - not adding - seemingly unrelated code in a hard to reason about fashion. And compilers absolutely will go out of their way to do this in the name of optimization and performance. And it will do this because it got smart enough to prove that the "unrelated" code can't run without first technically invoking undefined behavior, at which point it can jump to the wild conclusion that it must never actually execute (or that it can remove the code even if it does, because it's legal for the compiler to do anything after invoking undefined behavior - including not execute that code!)
Sometimes the removed code is important security checks, leading to CVEs, hotpatches, etc. - this is not theoretical, and is not remotely new at this point: https://www.grsecurity.net/~spender/exploits/cheddar_bay/exploit.c
It also makes reporting compiler bugs annoying, as you first have to definitively prove to yourself and the compiler guys that you've actually got a compiler bug, rather than a compiler "feature" of aggressive optimization within the letter of the C++ standard. It's only out of pure stubbornness that https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84658 got reported upstream, I was assuming it was UB in our codebase…