v0.13.0
Security
- Harden
/etcpermissions (CIS 6.1.x) — Build-timechown -R 0:0+ runtimechmodin guest-agent. Fixes macOS Docker VirtioFS losing UID 0 ownership. - Harden
/tmptmpfs (CIS 1.1.3–1.1.4) —nosuid,nodevflags, deterministicnr_inodes=16384cap. - Remove
/dev/vdaand/dev/zram0after use — Prevents raw disk reads bypassing filesystem permissions.
Features
Session.exposed_ports— Read-only property exposing resolved port mappings (internal/external/host/url).- Loopback interface up at boot — Enables
localhostconnectivity inside the VM. Fixes BunFailedToOpenSocket.
Bug Fixes
- Signal-killed processes return 128+signal instead of -1 (e.g., SIGKILL→137, SIGSEGV→139).
- REPL PID guard — Forked children no longer write premature sentinels that corrupt parent output.
sys.exit(None)returns 0 instead of 1, matching CPython convention.- Stdin →
/dev/nullin all REPLs —input(),sys.stdin.read(), shellread, JSprocess.stdin.read()return immediate EOF instead of hanging on the protocol pipe. - Shebang scripts in RAW mode —
#!scripts (awk, perl, etc.) routed through temp file for kernelbinfmt_scriptdispatch instead of failing silently viaeval. - Build: root-owned file cleanup — Fixes CI permission errors from sticky-bit
/tmp.
Tests
140 new tests covering /etc hardening, /tmp inode exhaustion, block device removal, loopback TCP/UDP, fork PID guard, shebang dispatch, stdin EOF semantics, and exposed_ports.