OnePlus Websites Compromised via Abandoned AWS S3 Bucket — Stored XSS Active Across Multiple Domains

OnePlus Websites Compromised via Abandoned AWS S3 Bucket Stored XSS Active Across Multiple Domains

Multiple OnePlus websites are actively serving malicious JavaScript through a stored cross-site scripting (XSS) vulnerability caused by an abandoned AWS S3 bucket that has been claimed by an external researcher. The vulnerability was first reported to OnePlus on July 5, 2025, reported again on July 21, 2025, and remains unpatched as of March 17, 2026, over eight months after initial disclosure.

The issue was publicly disclosed on Reddit's r/hacking community after the researcher, identified as Swar, stated that OnePlus ignored both reports. The original post on r/oneplus was deleted by moderators.

The Vulnerability

The root cause is a classic S3 bucket takeover. OnePlus previously used an AWS S3 bucket at analytics.oneplus.net to serve JavaScript files across its web properties. At some point, the bucket was decommissioned or released, but the <script> references in OnePlus's production HTML were never removed.

The researcher discovered the orphaned bucket, registered it under his own AWS account, and gained the ability to serve arbitrary JavaScript on any OnePlus page that still references the old analytics script. This turns what would normally be a dead resource link into a persistent stored XSS vector executing under the oneplus.com origin.

Reddit post on r/hacking disclosing the OnePlus S3 bucket takeover vulnerability, showing the researcher reported it twice to OnePlus with no response
The vulnerability was disclosed on Reddit after OnePlus ignored two separate reports over eight months.

Active Exploitation Proof

The researcher demonstrated the vulnerability by injecting proof-of-concept popup dialogs on live OnePlus pages. Visiting affected URLs triggers JavaScript alerts displaying cookie data and session tokens confirming the script executes with full access to the oneplus.com origin, including authentication cookies and session identifiers.

OnePlus website showing JavaScript alert popup with session cookies and authentication tokens exposed through the S3 bucket takeover XSS vulnerability
Proof-of-concept: JavaScript executing under oneplus.com origin with access to session cookies and tokens.

The vulnerable JavaScript file is loaded from s3.amazonaws.com/analytics.oneplus.net/opdcV2.min.js. Because it executes in the context of the parent OnePlus domain, an attacker controlling this bucket could:

Confirmed Affected URLs

The researcher confirmed the following OnePlus domains are affected, with additional pages likely vulnerable:

The scope likely extends to any OnePlus page that loads the deprecated analytics script potentially affecting regional storefronts across Asia, Europe, and India.

S3 bucket takeover proof of concept showing the PoC text file hosted on the claimed AWS bucket at analytics.oneplus.net
The researcher's PoC hosted on the claimed S3 bucket at analytics.oneplus.net.

Why This Matters

S3 bucket takeover is a well-documented attack class, but it remains dangerous because the remediation is simple remove the script reference from production HTML yet organizations routinely fail to do it. OnePlus has a history of website security incidents: a 2018 breach led to 40,000 credit cards being stolen via injected scripts on their payment page, and a 2019 breach exposed customer names, emails, and shipping addresses.

The current vulnerability is particularly concerning because it affects the buy flow on product pages. A malicious actor who discovered this same orphaned bucket could have silently harvested payment credentials or session tokens from OnePlus customers for months without detection.

Responsible Disclosure Failure

The researcher reported the vulnerability through OnePlus channels twice, on July 5, 2025 and July 21, 2025. Both reports were ignored. The public disclosure on Reddit represents a last-resort escalation after eight months without acknowledgment. This mirrors a broader pattern documented by security researchers, including Rapid7's experience with CVE-2025-10184, an OxygenOS vulnerability where OnePlus's bug bounty program proved unresponsive.

Remediation

For OnePlus: Remove all references to analytics.oneplus.net JavaScript files from production web pages immediately. Audit all external script sources across oneplus.com subdomains. Implement Content Security Policy (CSP) headers to prevent unauthorized script execution.

For OnePlus customers: Avoid using the OnePlus website for purchases until the issue is confirmed resolved. If you visited any OnePlus web page recently, consider changing your OnePlus account password and monitoring for unauthorized activity. Clear your browser cookies for oneplus.com domains.

Read the full analysis on IntelFusions