From 802c7c3881b72749359a67075117692a354fe93d Mon Sep 17 00:00:00 2001 From: Arpit Jain Date: Mon, 18 May 2026 09:37:55 +0900 Subject: [PATCH] ci: declare workflow-level contents: read on 2 workflows Pins the default GITHUB_TOKEN to contents: read on workflows that don't call a GitHub API beyond the initial checkout. Other workflows that need write scopes are left implicit for a maintainer to declare. Motivation: CVE-2025-30066 (March 2025 tj-actions/changed-files compromise) exfiltrated GITHUB_TOKEN from workflow logs. Per-workflow caps bound runtime authority irrespective of repo or org default, give drift protection, and are credited per-file by the OpenSSF Scorecard Token-Permissions check. YAML validated locally with yaml.safe_load. Signed-off-by: Arpit Jain --- .github/workflows/build.yml | 3 +++ .github/workflows/gradle-wrapper.yaml | 3 +++ 2 files changed, 6 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d153de1c92..a9b87745a1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,6 +12,9 @@ on: env: GRADLE_OPTS: "-Dorg.gradle.jvmargs=-Xmx4g -Dorg.gradle.daemon=false -Dkotlin.incremental=false" +permissions: + contents: read + jobs: jvm: runs-on: ubuntu-latest diff --git a/.github/workflows/gradle-wrapper.yaml b/.github/workflows/gradle-wrapper.yaml index 266ef38d56..57af2552b2 100644 --- a/.github/workflows/gradle-wrapper.yaml +++ b/.github/workflows/gradle-wrapper.yaml @@ -7,6 +7,9 @@ on: - 'gradlew.bat' - 'gradle/wrapper/**' +permissions: + contents: read + jobs: validate: runs-on: ubuntu-latest