kernelCTF Environment Helpers

April 1, 2026 ยท View on GitHub

This folder contains scripts to prepare and run local kernelCTF-style instances.

Files

  • releases.map profile-to-release mapping (single source of truth)
  • download.sh downloads kernelCTF assets
  • prepare-module-kernelctf.sh prepares kernel source and builds matching lkm.ko (required to call once in the begining)
  • patch-rootfs.sh patches rootfs_v3.img with local home/user/run.sh and home/user/nsjail.cfg
  • home/user/run.sh and home/user/nsjail.cfg templates injected into rootfs

Typical Flow

From repo root:

./kernelctf-env/download.sh -r lts-6.1.81 -r lts-6.6.98 -r lts-6.12.77 --with-vmlinux
./kernelctf-env/prepare-module-kernelctf.sh --release lts-6.1.81
./kernelctf-env/prepare-module-kernelctf.sh --release lts-6.6.98
./kernelctf-env/prepare-module-kernelctf.sh --release lts-6.12.77
./kernelctf-env/patch-rootfs.sh

Equivalent convenience target:

make prepare-kernelctf

Output Layout

  • kernelctf/rootfs_v3.img
  • kernelctf/ramdisk_v1.img
  • kernelctf/releases/<release-id>/...
  • kernelctf/linux-<release-id> or kernelctf/linux-lts-<...>

Caution

patch-rootfs.sh modifies kernelctf/rootfs_v3.img in place.