Commit Graph

4 Commits

Author SHA1 Message Date
vasilito 0a4a77a56b P27: add missing proc.rs guard.caps derivation from euid
The capability bitmask patch was missing the critical proc.rs hunk that
derives caps from euid when procmgr writes ProcSchemeAttrs to a child
context. Without this, all child processes had caps=0, causing
EACCES on dup("create-scheme") and crashing boot.

Fix: in ContextHandle::Attr kwrite path, after setting euid/egid/pid/prio,
set guard.caps = CAP_ALL when euid==0, else 0.
2026-05-29 14:25:37 +03:00
vasilito d2c761a56c fix: P27 caps init + P6 type errors and overlap with P5
P27: add caps: 0 to Context::new() default initialization.
P6: fix syscall::Error vs libredox::Error type mismatch (use ?),
    fix usize->u32 casts for Resugid fields, remove P5 overlap
    (issue/motd/consecutive_failures already in P5), add namespace
    isolation to password-verified auth path.

All 39 kernel patches validate. Full image builds.
2026-05-29 12:24:51 +03:00
vasilito f40b751bca fix: regenerate P27 kernel capability patch against clean P0-P26 baseline
P27-capability-bitmask.patch was generated against an incorrectly
patched source tree, causing hunk mismatches in validate-patches.
Regenerated from clean upstream + P0-P26 baseline using git diff -U0 -w.

All 39 patches now validate successfully.
2026-05-29 11:37:22 +03:00
vasilito ce9ff8aebd feat: Phase 2 - kernel capability bitmask (uid==0 -> has_cap())
Replace all 9 kernel uid==0 privilege checks with a capability bitmask
model. Adds caps:u64 field to Context and CallerCtx, with CAP_ALL for
root processes. Zero behavioral change - uid==0 still gets all caps.

New module: src/scheme/caps.rs with 10 capability constants.
9 check sites converted: acpi, irq, memory, debug, serio, sys (msr+write),
scheme registration, and fchown.

Patch: local/patches/kernel/P27-capability-bitmask.patch
2026-05-29 10:25:09 +03:00