Skip to content

kernel: the console's lockdown lines are said, and compat.yml boots the lockdown check - #234

Merged
aledbf merged 1 commit into
mainfrom
kernel/lockdown-lines-and-ci
Nov 12, 2026
Merged

aledbf merged 1 commit into
mainfrom
kernel/lockdown-lines-and-ci

Conversation

@aledbf

@aledbf aledbf commented Nov 12, 2026

Copy link
Copy Markdown
Member

The spin-machine half of #231.

What changes

  • kernel/README.md explains both lines the console prints at boot. Lockdown: init: use of bpf to read kernel RAM is restricted is lockdown refusing bpf_probe_read_kernel to systemd. bpf-restrict-fs: Failed to load BPF object: Invalid argument is the consequence: systemd's RestrictFileSystems= program needs that helper, so units in the guest cannot use RestrictFileSystems=. This is on purpose: integrity would bring it back, but root could read kernel memory again.
  • compat.yml runs task boot:lockdown after boot:compat, on this change's kernel, and also triggers on boot/lockdown_test.go and its script. The check now runs on every kernel change on main and before every release, not only by hand.
  • boot:here used to delete the release's whole bin/, which left out the debugfs the test needs to edit its copy of the base image. Now it removes only qemu-*, so the e2fsprogs tools are the release's, the same release the image comes from.

Checked

  • task boot:here against v20261109.01, then SPIN_MACHINE_OUTPUT=_output/compat/here task boot:lockdown: PASS. The guest reported lsm: lockdown,capability,bpf and lockdown: none integrity [confidentiality], and the bpf-restrict-fs line showed up on the console.
  • task lint: OK, including actionlint and "every workflow step runs a task the Taskfile has".

Not here

#231 also asks spin's e2e to assert [confidentiality] on a running workspace. That belongs in the spin repo.

🤖 Generated with Claude Code

…he lockdown check

The README names both lines a guest's console prints at boot, `bpf-restrict-fs: Failed
to load BPF object` and `use of bpf to read kernel RAM is restricted`: lockdown refusing
bpf_probe_read_kernel to systemd, which costs the guest's units `RestrictFileSystems=`.
Kept on purpose; integrity would let root read the kernel again.

`task boot:lockdown` ran only by hand. compat.yml runs it after boot:compat, on this
change's kernel, so it runs on every kernel change on main and before every release.
boot:here kept only the binaries it replaces and dropped the release's e2fsprogs with
them; it now removes only QEMU, so the test's debugfs is the release's, beside its image.

Refs #231

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@aledbf
aledbf merged commit 226d6fa into main Nov 12, 2026
3 checks passed
@aledbf
aledbf deleted the kernel/lockdown-lines-and-ci branch November 12, 2026 04:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant