RSSAmplifier

Blog

(untitled)

guysrd.github.ioRSS feed ↗4 posts

Latest posts

I handed the epoll UAF to an agent

In the last post I burned a few weeks on Nicholas’s epoll graph-walker UAF, got a constrained write but I never turned it into anything. That bug was a blind write into a freed eventpoll and I did not try to turn it into an infoleak, so the only strategy I had was PTE corruption and the timing never lined up.

futex: remove_waiter stack uaf

This post describes a stack uaf in the Linux futex subsystem, sitting in the code since 2011 and patched in April 2026. It allowed any adversary with an untrusted SELinux context to elevate privileges with the right magic. I did not reach code execution with it, I only managed to trigger it and shared my thoughts on the journey, I hope you’d like it.

The futex READ_ONCE

A futex is a 32b integer in userspace memory. Uncontended operations are pure userspace atomic ops the kernel is only involved when someone needs to sleep or wake up. PI futexes add priority inheritance, futex word stores the owner’s TID, and the kernel boosts the holder’s priority when a higher priority thread is waiting.

The epoll uaf

A couple of weeks ago Nicholas Carlini burned an epoll uaf race in fs/eventpoll.c. Commit 07712db80857 changed a kfree() to kfree_rcu(). The commit message says: “eventpoll: defer struct eventpoll free to RCU grace period.”