TMA-GITHUB-1.3.8
Ensure strict base permissions are set for repositories
Description
Base permissions define the permission level automatically granted to all organization members. Define strict base access permissions for all of the repositories in the organization, including new ones. Defining strict base permissions is the best practice in every role-based access control (RBAC) system. If the base permission is high - for example, "write" permission -every member of the organization will have ... default_repository_permission must be read or none. Uses the GitHub REST/GraphQL API through gh api (read-only). The repository comes from GH_REPO or the current git checkout (gh's {owner}/{repo} resolution, GH_HOST for GitHub Enterprise Server); the organization comes from GH_ORG (default: the repository owner). Fails when gh is missing or unauthenticated (gh auth login or GH_TOKEN); organization settings and branch protection need an owner/admin token.
How it is checked
Audit method: Shell command
command -v gh >/dev/null 2>&1 || exit 1
gh auth status >/dev/null 2>&1 || exit 1
O=${GH_ORG:-$(gh api 'repos/{owner}/{repo}' --jq .owner.login 2>/dev/null)}
[ -n "$O" ] || exit 1
v=$(gh api "orgs/$O" --jq '.default_repository_permission == "read" or .default_repository_permission == "none"' 2>/dev/null) || exit 1
[ "$v" = true ] && echo compliant- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
Organization Settings > Member privileges > Base permissions: Read or No permission; grant write via teams.
Properties
- Operating systems
- Any
- Tags
- githubsource-code
- Reference
- CIS GitHub Benchmark v1.2.0 - 1.3.8 Ensure strict base permissions are set for repositories
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target github