GitHub has sounded the alarm on a cyberattack that resulted in the private repositories of dozens of organizations being downloaded by an unauthorized party abusing stolen OAuth user tokens.
The incident was identified on April 12, when the code hosting platform observed suspicious activity on its npm production infrastructure.
The attackers, according to a GitHub advisory, gained access using a stolen AWS API key that appears to have been obtained when the attackers downloaded private npm repositories by abusing a compromised OAuth token from Heroku or Travis-CI, two third-party OAuth integrators.
GitHub and many of the platform users employ the applications maintained by the two integrators, and both Heroku and Travis-CI were notified of the compromise on April 13 and 14 and asked to revoke potentially compromised OAuth user tokens.
“Looking across the entire GitHub platform, we have high confidence that compromised OAuth user tokens from Heroku and Travis-CI-maintained OAuth applications were stolen and abused to download private repositories belonging to dozens of victim organizations that were using these apps,” GitHub warned.
The hosting platform also believes that the attackers may be mining the compromised repositories of secrets that could help them pivot to other infrastructure.
As of April 15, when the attackers were likely still ongoing, the affected OAuth applications known to have been impacted included Heroku Dashboard (ID: 145909), Heroku Dashboard (ID: 628778), Heroku Dashboard – Preview (ID: 313468), Heroku Dashboard – Classic (ID: 363831), and Travis CI (ID: 9216).
GitHub said it immediately revoked the tokens associated with GitHub and npm’s internal use of the impacted applications. The platform also notes that it has found no evidence that other GitHub-owned private repositories were cloned as part of this attack.
“We believe that the two impacts to npm are unauthorized access to, and downloading of, the private repositories in the npm organization on GitHub.com and potential access to the npm packages as they exist in AWS S3 storage. At this point, we assess that the attacker did not modify any packages or gain access to any user account data or credentials,” GitHub added.