XianYuLauncher
CVE-2026-48991
MEDIUM
Severity by source
AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
Local process required to race the OAuth redirect; victim must actively trigger login (UI:R); only confidentiality is impacted via token interception, with no integrity or availability effect.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
XianYuLauncher is a Minecraft Java Edition launcher. In versions prior to 1.5.5, sensitive authentication artifacts could be exposed during a user-initiated login under certain local attack conditions. Affected versions relied on a fixed localhost redirect URI without PKCE or state validation. Exploitation is most likely to occur when an attacker is able to observe, intercept, or otherwise interfere with the local authentication flow on the same device. This issue has been fixed in version 1.5.5.
AnalysisAI
XianYuLauncher, a Minecraft Java Edition launcher, exposes Microsoft OAuth authentication tokens to local attackers in all versions prior to 1.5.5 due to an OAuth 2.0 Authorization Code flow implemented without PKCE or state parameter validation. A local attacker running a concurrent process on the same machine can race the launcher's fixed localhost redirect URI to intercept the authorization code, then exchange it for valid Microsoft and Minecraft access tokens without any special privileges. Compounding the exposure, ClientToken was stored on disk in plaintext and JWT/Bearer tokens could be leaked into log output. No public exploit has been identified and this vulnerability is not listed in CISA KEV.
Technical ContextAI
The root cause is CWE-287 (Improper Authentication) arising from an incomplete OAuth 2.0 Authorization Code implementation. The launcher opened a fixed localhost redirect URI to receive the Microsoft authorization code after user login, but omitted both PKCE (RFC 7636) and the state parameter. Without PKCE, any local process that binds to the same port before the launcher receives the authorization code and can exchange it at Microsoft's token endpoint - the PKCE code_verifier that would normally bind the code to the originating client is absent. Without state validation, cross-site request forgery against the local redirect is also possible. Separately, the C
class TokenEncryption previously fell back to returning plaintext on encryption failure rather than throwing, and ClientToken was serialized to disk without encryption. The fix, visible in PR #213, migrates MicrosoftAuthService.cs to the MSAL library (Microsoft.Identity.Client), which handles PKCE natively, encrypts ClientToken via TokenEncryption.Encrypt() at save time, throws InvalidOperationException on encryption failure to block plaintext storage, and introduces SensitiveDataSanitizer.cs to redact Bearer tokens, JWTs, access/refresh tokens, and device codes from logs and error messages. Affected CPE: cpe:2.3:a:xianyulauncher:xianyulauncher:*:*:*:*:*:*:*:*.
RemediationAI
Upgrade to XianYuLauncher version 1.5.5, which resolves all facets of this issue: the Microsoft authentication service has been migrated to the MSAL library (Microsoft.Identity.Client) with native PKCE support, ClientToken is now encrypted at rest via TokenEncryption.Encrypt(), the encryption code path throws instead of silently returning plaintext on failure, and a new SensitiveDataSanitizer class redacts Bearer headers, JWT tokens, access/refresh tokens, and device codes from logs and error messages. The patch is documented at https://github.com/XianYuLauncher/XianYuLauncher/security/advisories/GHSA-q6r9-qxmf-8hfx and implemented in https://github.com/XianYuLauncher/XianYuLauncher/pull/213. If immediate upgrade is not possible, users should avoid initiating login on shared, multi-user, or potentially compromised machines, and restrict filesystem permissions on the launcher's account data directory to prevent unauthorized reads of the plaintext ClientToken.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
Same weakness CWE-287 – Improper Authentication
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today