Conversation

With TCPv6 sockets, we can have at least 112 bits of arbitrary user data on a predictable kernel address. Using setsockopt IP_FREEBIND allows binding for non-existent addresses. It works at least on 4.9 kernel as socket addresses aren't hashed and leaked on /proc/net/tcp6.
Image
Image
5
56
Replying to
Would be dependent upon kptr_restrict, as the ptr there was marked with %pK years before 4.9 was released, starting in 2011 (based on some of what was in GRKERNSEC_HIDESYM at the time)
2
4