This repository is a collection of proof-of-concept (PoC) exploit codes demonstrating various heap exploitation techniques in the GNU C Library (glibc) across versions 2.23 to 2.43. Each PoC is a standalone C program designed to be compiled and executed to showcase a specific heap corruption technique (e.g., fastbin dup, tcache poisoning, house of spirit, etc.) under controlled conditions. The primary purpose is educational, targeting security researchers, CTF participants, and students studying binary exploitation. The architecture is organized around a build system (Makefile) that compiles version-specific exploits located in directories named after glibc versions. Each exploit is self-contained with a main function, simulating heap manipulations to achieve arbitrary memory writes or code execution. Key entry points include the Makefile for building, an interactive heap exploration tool (malloc_playground.c), and a CI workflow for automated testing across multiple environments. The repository relies on glibc, build tools, and Docker for environment setup, with a submodule providing access to multiple glibc releases. The repository exhibits strong engineering practices through its reusable components: the Makefile employs wildcard and foreach functions to manage version-specific builds without duplication; malloc_playground.c offers an interactive interface for heap analysis that can be reused in other educational contexts; and the CI workflow uses a matrix strategy to test exploits across glibc and Ubuntu versions. Actively maintained with recent commits and low technical drift, the project adapts to glibc's evolving security mitigations by updating techniques for new versions, ensuring continued relevance in heap exploitation education.
This repository is the GNU C Library (glibc), the core C runtime library for Linux and GNU/Hurd systems. In production, it provides the standard C and POSIX APIs (libc, libm, libpthread, libdl, librt) and the dynamic linker/loader (ld-linux). The architecture is a collection of shared and static libraries, built via a highly modular sysdeps overlay system that allows per-architecture, per-OS, and per-ABI specialization. Key entry points include standard functions like printf, malloc, pthread_create, dlopen, and math functions. External dependencies are limited to kernel system calls and hardware-specific instructions. The codebase is exceptionally well-engineered with decades of refinement, featuring sophisticated symbol versioning, compatibility layers, and a massive test suite. It is actively maintained by the GNU project and remains the foundational C library for most Linux distributions.