neokom.lysator.liu.se down after the 0.5.0 autoroll: caddy "Operation not permitted" #268
Labels
No labels
area/ci
area/desktop
area/packaging
area/protocol
area/reading
area/ui
area/web
area/writing
kind/bug
kind/feature
kind/infra
kind/request
needs/user
parked
perf
security
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
littlefox/neokom#268
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Reported by the user, 2026-10-22: neokom.lysator.liu.se unreachable since the autoroll (503 from the gateway, "upstream connect error … connection timeout"). The pod log:
/usr/local/bin/neokom-web: line 74: /usr/local/bin/caddy: Operation not permitted.Cause: 0.5.0 was the first image built in CI (#201), and that builder kept the file capability (
cap_net_bind_service) the caddy image puts on its binary; 0.4.0, built locally, had lost it. Lysator runs the pod with all capabilities dropped andallowPrivilegeEscalation: false, and a binary with a file capability can't be executed there at all. Reproduced withdocker run --user 999:999 --read-only --cap-drop ALL --security-opt no-new-privileges.Fix (hotfix 0.5.1, from v0.5.0): copy caddy without the capability (it listens on 8080 and needs none); the image's CI check runs it locked down the same way.
Hotfix 0.5.1 tagged from v0.5.0 (
ceb496c). web-image run #445 built it, ran it locked down (user 999, read-only, all capabilities dropped, no new privileges) next to a lyskomd, and pushed 0.5.1 and latest. The autoroll rolled the pod about 3 minutes later. Checked from outside: https://neokom.lysator.liu.se/ answers 200 with the app, and /relay upgrades to a WebSocket (101). PR #269 brings the fix into main; this closes when it merges.