Skip to content

session-wrapper: remove built-in allowlist and enforce TACACS-controlled command authorization policy #157

Description

@Rod-Persky

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions