# kern 1.0.3

> Security hardening, in-kernel virtio, formatter and go-parity stdlib. A security release on the 1.0 line.

Source: https://kern-lang.eu/releases/1.0.3

Security hardening, in-kernel virtio, formatter and go-parity stdlib

A security release on the 1.0 line2,274 tests431 stdlib modules

## Release notes

### Capability bypass fixes

E0404 waived for a library's call to an authority builtin and for a Cap-taking declaration of a gated name; E0407 switched off by a user function named `__cap_trusted_src` or by compiler-source trust inferred from paths; the checker's own bookkeeping writable by declaring a function of the same name.

### Ambient authority closed

Nine host-state functions without a capability now take `Cap<Container>`; the microVM runner's entry hook (`std.runtime.vm_dispatch`) and the netlink builders are import-restricted (E0408).

### Container state hardened

The state root was world-readable (0755, now 0700); a container's env or image could plant a field in `state.json` (now escaped); path traversal out of the container and network state root is closed.

### std.ai removed

(gave package code stdlib provenance; import `kern_ai.*` instead).

### In-kernel virtio datapath

Vhost-net rings through ioeventfd and irqfd; the runner process is on neither the data path nor the interrupt path.

### VM runner self-containment

User/mount/pid/IPC/UTS/net namespaces, a per-VM subordinate uid, chroot to an empty directory, all before `KVM_CREATE_VM`.

### Installer release tag signature verification

SSH-signed tag check with a pinned key; a non-`v*` ref requires `KERN_ALLOW_UNSIGNED=1`.

### Go-parity wave

A safe-by-construction formatter (`kern fmt`) with comment preservation and a round-trip regression gate; 12 new stdlib modules (`std.csv`, `std.flag`, `std.tabwriter`, `std.base32`, `std.glob`, `std.mime`, `std.strconv`, `std.template`, `std.crc`, `std.mail`, `std.xml`, `time.parse_iso`); generic return recovery for `Container<T>`; generic typed channel/mutex API in `std.sync` (`TypedChannel<T>`, `Mutex<T>`, `RwLock<T>`); per-instance CPU pressure through `/v1/utilisation` (UR-106); a frozen compat corpus enforcing the 1.x compatibility promise; a normative spec with formal-proof limits surfaced; the edition `"2027"` mechanism (W0005 to E0309, W0003 to E0332).

### By the numbers

TCB 42,174\. 2,274 tests (1,601 conformance + 206 compat + 467 negative). 431 stdlib modules (308 core + 123 in 10 bundled packages), 4,824 public functions. 61K-line self-hosted compiler (LLVM + native ARM64), 66K-line C runtime.

Install

`$ curl -fsSL https://kern-lang.eu/install.sh | sh`

Upgrade with the same install command. Releases are signed.

[Get started ](https://kern-lang.eu/get-started)
