DNS State Exhaustion: Water Torture, NXNS Amplification, TsuNAME & DoT/DoH Socket Starvation

UDP DNS is stateful in practice: recursive resolvers hold per-query client tables, delegation chain depth counters, DNSSEC validation state, and TCP connection pools for DoT/DoH. Each layer is exhaustible at different cost ratios. Water torture generates maximum valid NXDOMAIN workload at minimum bandwidth. NXNS amplification (CVE-2020-8616) forces resolver delegation storms via NS referrals. TsuNAME creates infinite cyclic delegation. NRDelegation combines both. Full BIND9/Unbound configuration hardening and rate-limiting defense included.

May 11, 2026 · 13 min · JM00NJ

TCP State Exhaustion: TIME_WAIT Flood, Sockstress Persist Timer Abuse & Conntrack DoS | Linux Kernel

The ‘65536 port limit’ framing is wrong — Linux TCP capacity is governed by 4-tuple uniqueness (src_ip:src_port:dst_ip:dst_port) and ip_conntrack_max. TIME_WAIT exhaustion holds sockets in 2MSL timeout, consuming conntrack entries. Sockstress sets TCP window=0 to trigger infinite Persist Timer loops, stalling server state machines with minimal bandwidth. Slowloris-class variants do the same at L7. Full kernel parameter analysis: tcp_tw_reuse, tcp_fin_timeout, conntrack_max, and per-attack mitigation.

May 11, 2026 · 11 min · JM00NJ

BYOVD vs User-Space Injection: EDR Evasion Comparison | SROP + process_vm_writev vs Kernel Driver Exploit

BYOVD loads a signed vulnerable driver, exploits it for arbitrary kernel R/W, and terminates EDR at Ring 0 — Windows-only, noisy at driver load time, requires admin. User-space injection (Phantom Evasion Loader) uses SROP frames via sys_rt_sigreturn to fire ptrace without a direct ptrace syscall sequence, writes payload in a single process_vm_writev call (syscall 311), redirects RIP into target process — implant runs inside cron’s address space with cron’s identity. Linux-only. Results: 0/65 VirusTotal static, SROP and process_vm_writev invisible to Hatching Triage behavioral sandbox, only ptrace attach entry detected.

April 29, 2026 · 7 min · JM00NJ

FUSE Linux Kernel Integer Overflow: pgoff_t Arithmetic Wrap, Maple Tree OOB Write & VMA Corruption

MAX_LFS_FILESIZE only gates the superblock. A poisoned FUSE_GETATTR reply mutates i_size to UINT64_MAX at runtime. The (pos + count - 1) » PAGE_SHIFT arithmetic wraps unsigned, kworker loops become infinite, and vma_merge() degenerates into an arbitrary OOB-write on Maple Tree-backed kernels. Full mm/ subsystem analysis: filemap.c, mmap.c, XArray walk corruption primitives.

April 29, 2026 · 12 min · JM00NJ

FUSE Linux Kernel UAF: drop_caches + SIGKILL Race Condition | DirtyCred Use-After-Free & LPE

struct fuse_req holds inode references without bumping i_count. SIGKILL a stalled reader, trigger drop_caches inode eviction, delay fuse_abort_conn — the freed slab slot gets reallocated as struct cred. The race delivers a refcount double-decrement on whatever credential lands there: full DirtyCred-class LPE primitive. Complete race window analysis, SLUB reallocation timing, and RCU lifetime breakdown.

April 29, 2026 · 13 min · JM00NJ

FUSE Trust Boundary Attack: Malicious Daemon i_size Desync → Kernel Heap Overflow via finit_module & kexec

FUSE daemons control filesystem metadata returned to the kernel via vfs_getattr — including i_size. Setting i_size to an inflated value desynchronizes the kernel’s allocation (kmalloc based on reported size) from its ingestion (copy_from_user of actual bytes), creating a heap under-allocation. kernel_read_file() callers — finit_module(2), firmware loader, kexec_file_load(2) — are turned into kmalloc-4k SLUB slab overflow primitives. VFS trust inversion architecture, TOCTOU window analysis, and virtio-fs shared-memory attack surface covered.

April 29, 2026 · 11 min · JM00NJ
DigitalOcean Referral Badge