5465 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / Makefile
MODULE  := github.com/Percivalll/Dirty-Frag-Kubernetes-PoC
IMAGE   ?= dirtyfrag-poc
TAG     ?= eks

CC      ?= x86_64-linux-gnu-gcc
BUILDDIR := build

.PHONY: all payload-eks payload-header build-eks docker-build-eks clean

all: build-eks

# ── Step 1: compile nolibc payload → static ELF ──────────────────────
payload-eks: $(BUILDDIR)/payload

$(BUILDDIR)/payload: payload/payload-eks.c
	@mkdir -p $(BUILDDIR)
	$(CC) -static -nostdlib -include payload/nolibc/nolibc.h \
		-o $(BUILDDIR)/payload payload/payload-eks.c

# ── Step 2: generate C header with embedded payload bytes ────────────
payload-header: $(BUILDDIR)/payload_bin.h

$(BUILDDIR)/payload_bin.h: $(BUILDDIR)/payload
	xxd -i $(BUILDDIR)/payload > $(BUILDDIR)/payload_bin.h

# ── Step 3: compile exploit (links embedded payload) ─────────────────
build-eks: $(BUILDDIR)/dirtyfrag

$(BUILDDIR)/dirtyfrag: $(BUILDDIR)/payload_bin.h exploit/dirtyfrag.c
	$(CC) -O0 -Wall -static -I$(BUILDDIR) \
		-o $(BUILDDIR)/dirtyfrag exploit/dirtyfrag.c

# ── Step 4: build container image ────────────────────────────────────
docker-build-eks: $(BUILDDIR)/dirtyfrag
	docker build -f Dockerfile.eks -t $(IMAGE):$(TAG) .

# ── Convenience: build with nerdctl on EKS node ─────────────────────
nerdctl-build-eks: $(BUILDDIR)/dirtyfrag
	nerdctl --namespace k8s.io build -f Dockerfile.eks -t $(IMAGE):$(TAG) .

clean:
	rm -rf $(BUILDDIR)