Skip to content

evalbox-v0.1.1

Choose a tag to compare

@github-actions github-actions released this 22 Feb 21:25
· 12 commits to main since this release
a29cf17

Execute code like eval(), but safe. No containers, no VMs, no root.


Architecture Overhaul

The entire isolation model was replaced. Namespaces are gone - Landlock v5 is now the primary enforcement
layer.

Before (0.1.0) After (0.1.1)
7 namespace layers + Landlock Landlock v5 + seccomp + rlimits
clone() with CLONE_NEW* flags Plain fork()
pivot_root + bind mounts Landlock filesystem rules
Kernel 5.13+ Kernel 6.12+

Simpler, fewer moving parts, same security guarantees.

What Changed

Isolation

  • Landlock v5 replaces user, PID, network, mount, UTS, and IPC namespaces
  • RLIMIT_DATA (256 MiB) instead of RLIMIT_AS - no longer breaks Go, Java, or V8 runtimes
  • New dedicated rlimits module with CPU, core, and stack limits

Build

  • Nix flake migrated to flake-parts + import-tree (auto-discovery, zero boilerplate)
  • Restricted to x86_64-linux (arm not yet supported)

New

  • Seccomp user notify (SECCOMP_RET_USER_NOTIF) for optional syscall interception
  • SECURITY.md - vulnerability reporting policy
  • CONTRIBUTING.md - dev setup and testing guide
  • Security hardening roadmap

Removed

  • namespace.rs, rootfs.rs - namespace and pivot_root setup
  • nix/lib.nix, nix/checks.nix - replaced by flake-parts modules

Full Changelog: https://github.com/fullzer4/evalbox/blob/main/CHANGELOG.md