{"id":"CVE-2026-24059","aliases":["EUVD-2026-58128","GHSA-m7qq-f4rg-v5m5","GHSA-v43r-86x9-8523"],"status":"published","title":"Gitea runner registration-token GET endpoint performs a write under a read-only token scope","description":"The GET /api/v1/user/actions/runners/registration-token endpoint (and its owner- and repository-level equivalents) creates a new runner registration token if none exists, yet the API scope middleware classifies it as read-only because it is a GET request. A holder of a leaked read:user-scoped token can therefore mint a registration token and register a malicious Actions runner that executes workflow jobs with access to repository secrets and source code.","severity":{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-10","score":0.00415,"percentile":0.36147,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-269"],"published":"2026-08-13T16:48:52Z","modified":"2026-10-28T02:31:09Z","products":[{"vendor":"gitea","product":"gitea open source git server"}],"references":[{"url":"https://github.com/go-gitea/gitea/security/advisories/GHSA-v43r-86x9-8523","tags":["vendor-advisory","advisory"]},{"url":"https://github.com/go-gitea/gitea/pull/36801","tags":["patch","fix"]},{"url":"https://github.com/go-gitea/gitea/releases/tag/v1.25.5","tags":["release-notes","advisory"]},{"url":"https://blog.gitea.com/release-of-1.25.5/","tags":["release-notes","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-24059","tags":["advisory"]},{"url":"https://blog.gitea.com/release-of-1.25.5"},{"url":"https://github.com/advisories/GHSA-m7qq-f4rg-v5m5"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/24xxx/CVE-2026-24059.json","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2026-24059","title":"Gitea runner registration-token GET endpoint performs a write under a read-only token scope","description":"The GET /api/v1/user/actions/runners/registration-token endpoint (and its owner- and repository-level equivalents) creates a new runner registration token if none exists, yet the API scope middleware classifies it as read-only because it is a GET request. A holder of a leaked read:user-scoped token can therefore mint a registration token and register a malicious Actions runner that executes workflow jobs with access to repository secrets and source code.","status":"published","published":"2026-08-13T16:48:52.623Z","modified":"2026-08-14T17:10:45.377Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"adp"}],"cwes":["CWE-269"],"updated_at":"2026-11-02T14:19:50.24628Z"}],"euvd":[{"id":"EUVD-2026-58128","description":"The GET /api/v1/user/actions/runners/registration-token endpoint (and its owner- and repository-level equivalents) creates a new runner registration token if none exists, yet the API scope middleware classifies it as read-only because it is a GET request. A holder of a leaked read:user-scoped token can therefore mint a registration token and register a malicious Actions runner that executes workflow jobs with access to repository secrets and source code.","status":"published","published":"2026-08-13T16:48:52Z","modified":"2026-08-14T17:10:45Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"updated_at":"2026-11-02T18:01:53.90055Z"}],"ghsa":[{"id":"GHSA-m7qq-f4rg-v5m5","title":"The GET /api/v1/user/actions/runners/registration-token endpoint (and its owner- and repository...","description":"The GET /api/v1/user/actions/runners/registration-token endpoint (and its owner- and repository-level equivalents) creates a new runner registration token if none exists, yet the API scope middleware classifies it as read-only because it is a GET request. A holder of a leaked read:user-scoped token can therefore mint a registration token and register a malicious Actions runner that executes workflow jobs with access to repository secrets and source code.","status":"published","published":"2026-08-13T18:31:39Z","modified":"2026-08-14T18:31:30Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-269"],"updated_at":"2026-11-02T15:10:29.313415Z"}],"nvd":[{"id":"CVE-2026-24059","description":"The GET /api/v1/user/actions/runners/registration-token endpoint (and its owner- and repository-level equivalents) creates a new runner registration token if none exists, yet the API scope middleware classifies it as read-only because it is a GET request. A holder of a leaked read:user-scoped token can therefore mint a registration token and register a malicious Actions runner that executes workflow jobs with access to repository secrets and source code.","status":"published","published":"2026-08-13T17:17:21.887Z","modified":"2026-08-26T16:53:48.3Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-269"],"updated_at":"2026-11-02T14:12:37.557758Z"}],"osv":[{"id":"CVE-2026-24059","title":"Gitea runner registration-token GET endpoint performs a write under a read-only token scope","description":"The GET /api/v1/user/actions/runners/registration-token endpoint (and its owner- and repository-level equivalents) creates a new runner registration token if none exists, yet the API scope middleware classifies it as read-only because it is a GET request. A holder of a leaked read:user-scoped token can therefore mint a registration token and register a malicious Actions runner that executes workflow jobs with access to repository secrets and source code.","status":"published","published":"2026-08-13T16:48:52.623Z","modified":"2026-10-28T02:31:09.9846188Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","level":"medium"}],"cwes":["CWE-269"],"updated_at":"2026-11-02T15:44:59.079784Z"}]}}
