Skip to content

GitHub · disclosed report #2484635

GitHub Apps can access suspended installations via scoped user-to-server tokens

How it was found, in CyberSIXT's words · 90 votes

This analysis is CyberSIXT's own summary of the public report, written by a model and checked automatically. It may be wrong: the researcher's report is the source.

Read the researcher's report

Read the researcher's report on HackerOne

A suspended GitHub App could continue accessing public repositories through a scoped user-to-server token. Private repositories were not affected.

How it was found

  1. The report identifies suspended app installations as the relevant authorization state.
  2. It reports that a scoped user-to-server token still enabled repository access after suspension.
  3. The impact was limited to public repositories; the report provides no further testing details.
Access needed
A user account · an account
User interaction
Not clear
Whose object
No object involved
Boundary crossed
A suspended app retained access to public repositories through a scoped user-to-server token.
Root cause
Suspending an app installation did not revoke or block access mediated by its scoped user-to-server token.
Impact
A suspended app could retain access to public repositories, but not private repositories.
Fix
The issue was fixed in specified GitHub Enterprise Server releases from versions 3.9.17 through 3.13.1.
Components
GitHub App installations, scoped user-to-server tokens, public repositories
Confidence
medium

This analysis is CyberSIXT's own summary of the public report, written by a model and checked automatically. It may be wrong: the researcher's report is the source. Written 2026-11-14. Ask for a correction or removal.

Similar findings, side by side
ReportAccessWhose objectBoundary crossed
Exfiltrate and mutate repository and project data through injected templated serviceA user accountAnother tenant'sA regular user imported administrator-only templates that were then installed in projects created by other users.
Getting all the CD keys of any gameA user accountAnother user'sA partner user retrieved another game's CD keys despite lacking access to that game.
Publicly accessible Continuous Integration ToolNo accountNo object involvedA public user accessed an internal CI instance and its sensitive data.
Attacker is able to access commit title and team member comments which are supposed to be privateA user accountAnother user'sA non-team member received email notifications containing activity from a team-only project.
Private list members disclosure via GraphQLA user accountAnother user'sA caller accessed another user's private-list membership through GraphQL after discovering its identifier.
Exposed proxy allows to access internal reddit domainsNo accountNo object involvedAn unauthenticated external request was reportedly proxied to an internal domain.
Organization TakeoverA user accountAnother tenant'sA manager changed their membership role in another organization using administrator authority from their own organization.
View Titles of Private Reports with pending email invitationNo accountAnother user'sAn anonymous user read the title of another user's private report by supplying its ID.
Account takeover of existing HackerOne accounts through SCIM provisioningA privileged roleAnother user'sAn organization member’s account was reassigned to an attacker-controlled email, allowing password reset and account access.
Discoverability by phone number/email restriction bypassNo accountThe attacker's ownThe onboarding flow disclosed an identifier for an account whose discoverability was disabled.
Group search leaks private MRs, code, commitsNo accountAnother user'sUnauthenticated group search exposed content from a private project.
Unauthorized access to █████████.com allows access to Uber Brazil tax documents and system.No accountNo object involvedUnauthenticated visitors could access pages intended to be restricted.
Program
GitHub
Status
Valid
Severity
Medium
Bounty
None stated
Weakness as filed
Improper Access Control - Generic
Disclosed
2024
Upvotes
90

Every one of the 12 is a mark on the map. Named now: 1 to 12, most similar first.

  1. Exfiltrate and mutate repository and project data through injected templated service#446585GitLab · needs: a user account · 1 shared technique
  2. Getting all the CD keys of any game#391217Valve · needs: a user account · 1 shared technique
  3. Publicly accessible Continuous Integration Tool#313457Snapchat · needs: no account · 1 shared technique
  4. Attacker is able to access commit title and team member comments which are supposed to be private#502593GitLab · needs: a user account · 1 shared technique
  5. Private list members disclosure via GraphQL#885539X / xAI · needs: a user account · 1 shared technique
  6. Exposed proxy allows to access internal reddit domains#2967634Reddit · needs: no account · 1 shared technique
  7. Organization Takeover#809816Helium · needs: a user account · 1 shared technique
  8. View Titles of Private Reports with pending email invitation#2312029HackerOne · needs: no account · 1 shared technique
  9. Account takeover of existing HackerOne accounts through SCIM provisioning#3178999HackerOne · needs: a privileged role · 1 shared technique
  10. Discoverability by phone number/email restriction bypass#1439026X / xAI · needs: no account · 1 shared technique
  11. Group search leaks private MRs, code, commits#692252GitLab · needs: no account · 1 shared technique
  12. Unauthorized access to █████████.com allows access to Uber Brazil tax documents and system.#530441Uber · needs: no account · 1 shared technique

paid a bounty

Zoom in on the map and the dots under the middle of it are named where they are.

Data as of 2026-11-15. CVE List through 2026-11-15 · EPSS of 2026-11-14 · CISA KEV checked 2026-11-15. Sources: the CVE List, CISA KEV, EPSS, NVD, nuclei templates and public bug bounty data.