<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kernel on Moe's VR blog</title><link>https://mohandacherir.github.io/Qdiv7/tags/kernel/</link><description>Recent content in Kernel on Moe's VR blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 20 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://mohandacherir.github.io/Qdiv7/tags/kernel/index.xml" rel="self" type="application/rss+xml"/><item><title>Unix GC Remastered</title><link>https://mohandacherir.github.io/Qdiv7/posts/unix_new_gc/</link><pubDate>Sun, 19 Apr 2026 00:00:00 +0000</pubDate><guid>https://mohandacherir.github.io/Qdiv7/posts/unix_new_gc/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>The AF_UNIX garbage collector is an interesting piece of the kernel. It exists because sockets can be sent with SCM_RIGHTS but they can become unreachable from user-space while still being kept alive by the kernel, which is not memory efficient; in this situation, the garbage collector intervenes to free them. Not long ago, the subsystem was rewritten from scratch on top of a graph/Strongly-Connected-Components model; but it is still bug prone.
This post walks the rewrite end-to-end, and discusses a Use-After-Free bug.&lt;/p></description></item><item><title>CVE-2026-31419: Use-After-Free in the Linux Bonding Driver</title><link>https://mohandacherir.github.io/Qdiv7/posts/cve-2026-31419/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://mohandacherir.github.io/Qdiv7/posts/cve-2026-31419/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>Linux offers a way to synchronize multiple network interfaces, physical or virtual, and make them run a single logical NIC. The bonding driver handles of all that work.
It is present in all major distros and this bug is exploitable in the ones that allow usernamespaces for unprivileged users like in RedHat or Fedora; that is, it&amp;rsquo;s reachable from any code path that can send packets out of the bonding device.&lt;/p></description></item><item><title>CVE-2024-0582, or Easy Kernel Exploitation</title><link>https://mohandacherir.github.io/Qdiv7/posts/n-day-exploit-cve-2024/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://mohandacherir.github.io/Qdiv7/posts/n-day-exploit-cve-2024/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>&lt;strong>io_uring&lt;/strong> has been a heavily targeted subsystem in the Linux kernel — at one point it constituted 60% of kCTF entries (&lt;a href="https://security.googleblog.com/2023/06/learnings-from-kctf-vrps-42-linux.html">source&lt;/a>). As with most newly introduced features, io_uring — since its introduction in 2019 — has been very bug-prone.&lt;/p></description></item><item><title>Notes On RCU</title><link>https://mohandacherir.github.io/Qdiv7/posts/notes_on_rcu/</link><pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate><guid>https://mohandacherir.github.io/Qdiv7/posts/notes_on_rcu/</guid><description>&lt;p>RCU is a mechanism in the Linux kernel for concurrency that is lock-free, wait-free (for readers) and that allows concurrent readers and a single updater.
RCU is made up of three fundamental mechanisms, one for &lt;strong>insertion&lt;/strong>, the other for &lt;strong>deletion&lt;/strong>, and the third being used to allow readers to tolerate &lt;strong>concurrent insertions and deletions&lt;/strong>. These mechanisms are described in the following sections, which focus on applying RCU to linked lists.&lt;/p></description></item><item><title>Notes on io_uring bugs &amp; exploitation</title><link>https://mohandacherir.github.io/Qdiv7/posts/io_uring_exploitation/</link><pubDate>Tue, 20 Jan 2026 00:00:00 +0000</pubDate><guid>https://mohandacherir.github.io/Qdiv7/posts/io_uring_exploitation/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>&lt;code>io_uring&lt;/code> is one of the most ambitious kernel interfaces added in recent years: a shared-memory asynchronous I/O engine designed to avoid the syscall-heavy overhead of traditional &lt;code>read&lt;/code>, &lt;code>write&lt;/code>, and networking paths. That performance-oriented design also makes it unusually interesting from a security perspective, because the subsystem is full of long-lived shared state, lifetime-sensitive objects, and fast paths that interact closely with core kernel memory-management code.&lt;/p></description></item><item><title>Notes on refcounting and Unix Garbage Collector in the Linux Kernel</title><link>https://mohandacherir.github.io/Qdiv7/posts/refcounting-linux-kernel/</link><pubDate>Tue, 23 Dec 2025 00:00:00 +0000</pubDate><guid>https://mohandacherir.github.io/Qdiv7/posts/refcounting-linux-kernel/</guid><description>&lt;p>As a means of studying and getting to know more about the linux kernel, especially exploitation(LPE &amp;amp; RCE), i tried to make notes and go as far as i can in reviewing the &lt;strong>unix garbage&lt;/strong>, or &lt;strong>GC&lt;/strong>, collector, the &lt;strong>io_uring&lt;/strong> subsystem, and some CVEs that showcase all of these. I am currently working on an N-day LPE for CVE-2022-2602 LPE to make it work with &lt;strong>FUSE&lt;/strong> technique.&lt;/p></description></item><item><title>Notes on Linux Internals: The Slab Allocator</title><link>https://mohandacherir.github.io/Qdiv7/posts/notes-on-linux-internals-the-slab-allocator/</link><pubDate>Sat, 06 Sep 2025 00:00:00 +0000</pubDate><guid>https://mohandacherir.github.io/Qdiv7/posts/notes-on-linux-internals-the-slab-allocator/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>This post is some of my early notes on the SLUB allocator.&lt;/p>
&lt;p>The kernel heap allocator is an important component responsible for satisfying allocation/de-allocation requests coming from different sources like device drivers, usermode processes, filesystems, etc. These notes discuss only &lt;code>kmalloc&lt;/code> and &lt;code>kmem_cache_alloc*&lt;/code>, but there are three main memory allocators used by the kernel:&lt;/p></description></item></channel></rss>