Parent epic: #152
session-wrapper: remove built-in allowlist and enforce TACACS-controlled command authorization policy
Objective
Remove the built-in/local command allowlist fast path and replace it with TACACS+-controlled per-exec authorization behavior inside the Landlock boundary.
Breaking changes are allowed. Removing CLI flags, files, and tests tied to the old proof-of-concept allowlist is expected.
Background
The existing built-in allowlist is platform-dependent and creates a local authorization bypass. In the new model, Landlock is the maximum execution boundary and TACACS+ remains the dynamic per-command decision point inside that boundary.
Required Behavior
- Delete the unconditional built-in exec allowlist, including
builtin_allowlist.txt.
- Remove or repurpose production
--allowlist behavior. A production local file must not bypass TACACS+ command authorization.
- Initial production behavior is:
landlock-command-auth=required
- Every intercepted exec inside the Landlock profile still receives per-exec TACACS+ authorization.
- The per-command authorization request remains:
service=shell
cmd=/path/to/executable
cmd-arg=...
- Unsupported future optimization modes such as
profile-only or landlock-auth-cache should be rejected, ignored safely, or left unimplemented with explicit errors.
Security Requirements
- Winning the seccomp user-notification TOCTOU race must not permit execution outside the Landlock profile.
- A local path list must not silently permit commands without TACACS+ visibility.
- Any future command authorization cache must be explicit TACACS+ profile data, not compiled-in behavior.
Acceptance Criteria
- Built-in allowlist code and data are removed from production paths.
- Tests prove
landlock-command-auth=required causes per-exec TACACS+ authorization for every intercepted exec.
- Tests prove local allowlist fast paths are not used in production profile mode.
- CLI/help/docs no longer imply that local allowlists provide production authorization bypasses.
Parent epic: #152
session-wrapper: remove built-in allowlist and enforce TACACS-controlled command authorization policy
Objective
Remove the built-in/local command allowlist fast path and replace it with TACACS+-controlled per-exec authorization behavior inside the Landlock boundary.
Breaking changes are allowed. Removing CLI flags, files, and tests tied to the old proof-of-concept allowlist is expected.
Background
The existing built-in allowlist is platform-dependent and creates a local authorization bypass. In the new model, Landlock is the maximum execution boundary and TACACS+ remains the dynamic per-command decision point inside that boundary.
Required Behavior
builtin_allowlist.txt.--allowlistbehavior. A production local file must not bypass TACACS+ command authorization.profile-onlyorlandlock-auth-cacheshould be rejected, ignored safely, or left unimplemented with explicit errors.Security Requirements
Acceptance Criteria
landlock-command-auth=requiredcauses per-exec TACACS+ authorization for every intercepted exec.