Unsubscribe Links Used in Phishing Attacks
June 13, 2025Lumma Stealer Malware aka LummaC – Active IOCs
June 13, 2025Unsubscribe Links Used in Phishing Attacks
June 13, 2025Lumma Stealer Malware aka LummaC – Active IOCs
June 13, 2025Severity
High
Analysis Summary
A newly uncovered phishing campaign is exploiting GitHub’s OAuth2 device authorization flow to compromise developer accounts and steal authentication tokens. This sophisticated attack leverages legitimate GitHub functionality, making it difficult to detect using conventional security controls. Unlike traditional phishing methods that rely on fake websites or suspicious links, attackers use GitHub’s native device authentication mechanism to deceive victims. This tactic mirrors previously seen techniques in Azure Active Directory phishing, but with a strategic focus on compromising the software development lifecycle through GitHub, which has become a critical hub for source code, CI/CD workflows, and proprietary secrets.
The attack begins with the threat actor initiating a device code request to GitHub’s OAuth API, often using legitimate client identifiers such as Visual Studio Code’s client ID to appear trustworthy. The API responds with a device code, a six-digit user code, a verification URL, and a limited time window for authentication. The attackers then social engineer developers, frequently through phone calls, to enter the code on GitHub’s verification page under the guise of IT support or security staff requesting routine device registration or authentication updates. Once the code is entered and approved, the attacker receives an OAuth token granting access to the victim’s GitHub account.
This OAuth token, once obtained, can be used to access source code, secrets stored in GitHub Actions, and sensitive repository content, and may even allow attackers to execute code on self-hosted runners or implant backdoors. Such capabilities pose a grave risk of widespread supply chain compromise, as demonstrated by past incidents like the “tj-actions” breach. With access to even a single developer account, attackers can infiltrate broader systems and potentially distribute malicious code to downstream consumers, amplifying the impact well beyond the initial breach.
The effectiveness of this campaign is underscored by Researchers, who report success rates exceeding 90% when the phishing is delivered via voice calls. This method exploits trust and urgency, particularly in environments where developers regularly interact with security or IT teams. The campaign highlights the pressing need for enhanced behavioral monitoring and additional verification layers around GitHub OAuth workflows. As software supply chains become increasingly centralized around platforms like GitHub, attacks exploiting trusted platform features represent a growing and urgent threat to organizations worldwide.
Impact
- Sensitive Information Theft
- Unauthorized Access
- Code Execution
- Security Bypass
Remediation
- Require all GitHub users to enable MFA to add an additional layer of protection against unauthorized access.
- Restrict or disable the use of device code authentication where possible, especially for high-privilege accounts or sensitive repositories.
- Regularly audit authorized OAuth apps in your GitHub organization and remove any that are unused, unnecessary, or suspicious.
- Set up alerts for OAuth tokens requesting broad scopes like repo, workflow, or user—especially from unusual sources or IPs.
- Conduct regular security awareness training to help developers recognize phishing via phone or other social engineering attempts.
- Use tools that can detect unusual GitHub activity such as unexpected token usage, abnormal repository access, or off-hours logins.
- Periodically revoke and reissue OAuth tokens to limit the lifespan of any potentially compromised credentials.
- Use organization-specific client IDs instead of widely known ones (e.g., Visual Studio Code’s client ID) to reduce impersonation risk.
- Ensure OAuth applications and tokens are granted only the minimum permissions necessary for their function.
- Enforce branch protection rules, code review requirements, and signed commits to prevent unauthorized or malicious code changes.
- Configure shorter token lifespans to reduce the window of opportunity for abuse if a token is stolen.
- Enable features like security log auditing, IP allowlisting (for GitHub Enterprise), and GitHub Advanced Security to enhance protection.