CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-7RHV-H82H-VPJH

CVE-2026-30777: MFA Bypass in EC-CUBE Administrative Interface

Alon Barad
Alon Barad
Software Engineer

Mar 6, 2026·5 min read·19 visits

Executive Summary (TL;DR)

An improper route exclusion in EC-CUBE's MFA logic allows attackers with valid passwords to bypass 2FA. By navigating directly to the setup URL, attackers can overwrite the victim's MFA secret key without passing the initial challenge. Fixed in versions 4.3.1-p1, 4.2.3-p2, and 4.1.2-p5.

EC-CUBE, a widely used open-source e-commerce platform, contains a critical authentication bypass vulnerability in its Multi-Factor Authentication (MFA) implementation. The flaw allows an attacker who possesses valid administrative credentials (username and password) to bypass the secondary MFA challenge by directly accessing the MFA configuration route. This route was improperly excluded from the authentication listener's enforcement logic, allowing the attacker to overwrite the existing TOTP secret with a new one under their control, effectively taking over the administrator account.

Vulnerability Overview

EC-CUBE represents a significant portion of the e-commerce market in Japan. Its administrative interface is protected by a Multi-Factor Authentication (MFA) mechanism designed to prevent unauthorized access even if primary credentials are compromised. However, CVE-2026-30777 reveals a logical flaw in how the application enforces these checks.

The vulnerability exists within the TwoFactorAuthListener, a middleware component responsible for intercepting requests and verifying MFA status. Due to an overly permissive configuration in the listener's exclusion list, specific administrative routes were exempted from MFA enforcement globally. This oversight creates a direct path for attackers to circumvent the security control entirely.

While the attacker requires valid primary credentials (username and password) to exploit this flaw, the vulnerability negates the specific security control (MFA) intended to mitigate credential theft. Consequently, an attacker who has obtained credentials via phishing or reuse can achieve full administrative access despite the presence of 2FA.

Root Cause Analysis

The vulnerability is classified as CWE-288: Authentication Bypass Using an Alternate Path or Channel. The root cause lies in the static configuration of the ROUTE_EXCLUDE array within src/Eccube/EventListener/TwoFactorAuthListener.php.

The application defines a list of routes that must be accessible without passing an MFA check, such as the login page itself or the MFA code entry page. Crucially, the route admin_two_factor_auth_set—which handles the generation and registration of new TOTP secrets—was included in this exclusion list unconditionally.

The developers likely intended this exclusion to allow users to set up MFA for the first time. However, the logic failed to verify whether the user already had MFA configured. As a result, the application processes requests to the setup endpoint from any authenticated user, regardless of whether they have completed the MFA challenge for the current session.

Code Analysis

The patch addresses the vulnerability by removing the unconditional exclusion and implementing a conditional check based on the user's state. Below is an analysis of the changes in TwoFactorAuthListener.php.

Vulnerable Code

In the pre-patch version, the setup route was hardcoded into the global exclusion list:

// src/Eccube/EventListener/TwoFactorAuthListener.php
 
// The 'admin_two_factor_auth_set' route is globally excluded from MFA checks
public const ROUTE_EXCLUDE = [
    'admin_two_factor_auth',
    'admin_two_factor_auth_set' // VULNERABILITY: Unconditional exclusion
];

Patched Code

The fix introduces a distinction between routes that are always excluded and routes that are only excluded when MFA is not yet configured:

// src/Eccube/EventListener/TwoFactorAuthListener.php
 
public const ROUTE_EXCLUDE = ['admin_two_factor_auth'];
 
// New constant for conditional exclusion
public const ROUTE_EXCLUDE_WHEN_NOT_CONFIGURED = ['admin_two_factor_auth_set'];
 
public function onKernelController(ControllerEvent $event)
{
    // ... [snip] ...
    
    // Check if the current route is in the conditional exclusion list
    if (in_array($route, self::ROUTE_EXCLUDE_WHEN_NOT_CONFIGURED)) {
        // Only allow bypass if the user DOES NOT have a key set
        if ($Member instanceof Member && !$Member->getTwoFactorAuthKey()) {
            return;
        }
    }
    
    // Proceed with standard MFA enforcement
    // ...
}

Additionally, the controller TwoFactorAuthController.php was updated to redirect users away from the setup page if they already possess an active key, providing defense-in-depth.

Exploitation Methodology

Exploiting this vulnerability requires the attacker to possess valid administrative credentials. The attack flow bypasses the standard authentication workflow by manually manipulating the URL structure.

Attack Sequence

  1. Authentication: The attacker logs in to the admin panel using a stolen ID and password.
  2. Interception: The application redirects the attacker to admin_two_factor_auth, prompting for a TOTP code.
  3. Bypass: Instead of entering the code, the attacker modifies the browser URL to https://[target]/admin/setting/system/two_factor_auth/set.
  4. Overwrite: Due to the route exclusion, the application renders the MFA setup page. The attacker scans the new QR code or copies the secret key into their own authenticator app.
  5. Access: The attacker submits the new token. The server updates the database with the attacker's key and grants full session access.

Impact Assessment

The impact of this vulnerability is high within the context of the affected application, though the CVSS score is moderated by the requirement for initial privileges (the password).

  • Confidentiality (High): An attacker can access all customer data, order history, and PII stored in the e-commerce system.
  • Integrity (High): The attacker can modify product prices, inject malicious JavaScript (e.g., credit card skimmers) into the storefront, or alter order statuses.
  • Availability (Low/None): While the attacker could delete data, the primary risk is unauthorized control rather than denial of service.

The CVSS v3.1 vector is CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N (Base 4.9). Note that while confidentiality and availability are marked Low/None in the vector relative to the vulnerability mechanism (bypass), the result of gaining admin access implies total system compromise. The CVSS v4.0 assessment elevates this to a Base Score of 6.9, reflecting the severity more accurately.

Remediation and Mitigation

The primary remediation is to apply the official patches provided by EC-CUBE. The fix logic is robust, introducing state-aware checks that prevent the setup route from being accessed if an MFA key is already present.

Affected Versions & Fixes

  • EC-CUBE 4.3 Series: Update to 4.3.1-p1 or later.
  • EC-CUBE 4.2 Series: Update to 4.2.3-p2 or later.
  • EC-CUBE 4.1 Series: Update to 4.1.2-p5 or later.

Temporary Workarounds

If immediate patching is not feasible, administrators can mitigate the risk by restricting access to the administrative path (/admin) to trusted IP addresses via web server configuration (Apache .htaccess or Nginx allow/deny directives). This reduces the attack surface by requiring network-level access in addition to stolen credentials.

Official Patches

EC-CUBEOfficial EC-CUBE Security Advisory

Fix Analysis (1)

Technical Appendix

CVSS Score
4.9/ 10
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N
EPSS Probability
0.06%

Affected Systems

EC-CUBE 4.1.xEC-CUBE 4.2.xEC-CUBE 4.3.x

Affected Versions Detail

Product
Affected Versions
Fixed Version
EC-CUBE
EC-CUBE
>= 4.1.0, <= 4.1.24.1.2-p5
EC-CUBE
EC-CUBE
>= 4.2.0, <= 4.2.34.2.3-p2
EC-CUBE
EC-CUBE
>= 4.3.0, <= 4.3.14.3.1-p1
AttributeDetail
CWE IDCWE-288
Attack VectorNetwork
CVSS v3.14.9 (Medium)
CVSS v4.06.9 (Medium)
ImpactAuthentication Bypass
EPSS Score0.06%

MITRE ATT&CK Mapping

T1556Modify Authentication Process
Credential Access
T1110Brute Force
Credential Access
CWE-288
Authentication Bypass Using an Alternate Path or Channel

Vulnerability Timeline

Initial security bulletin published by EC-CUBE
2026-02-10
Fix commit merged
2026-03-04
Public disclosure via JVN and GitHub Advisory
2026-03-05

References & Sources

  • [1]GitHub Advisory: MFA Bypass in EC-CUBE
  • [2]JVN#63765888: EC-CUBE vulnerable to authentication bypass

More Reports

•about 2 hours ago•CVE-2026-48526
7.4

CVE-2026-48526: Algorithm Confusion Vulnerability in PyJWT

CVE-2026-48526 is an algorithm-confusion vulnerability in PyJWT prior to version 2.13.0. When an application decodes tokens using a raw JSON Web Key (JWK) string while simultaneously supporting mixed algorithm families (symmetric and asymmetric), PyJWT does not validate that the key matches its intended algorithm context. This allows an attacker to sign a forged token using the public JWK string as an HMAC symmetric secret, bypassing authentication controls.

Alon Barad
Alon Barad
4 views•7 min read
•about 3 hours ago•CVE-2026-23479
8.8

CVE-2026-23479: Use-After-Free Vulnerability in Redis Blocking-Client Command Re-Execution

CVE-2026-23479 is a critical Use-After-Free (UAF) vulnerability inside the blocking-client code path of the Redis in-memory data structure server. In affected versions from 7.2.0 until 8.6.3, the unblock client flow fails to handle an error return from processCommandAndResetClient when re-executing a previously blocked command. If a blocked client is evicted due to maxmemory limits or client eviction policies during this command processing flow, its client structure is freed. Because the caller ignores the error return and continues processing, it attempts to read and write properties on the freed client structure, leading to a Use-After-Free condition.

Alon Barad
Alon Barad
11 views•7 min read
•about 10 hours ago•CVE-2026-42211
8.1

CVE-2026-42211: Remote Code Execution via Insecure Deserialization in React Router Framework Mode

A critical vulnerability exists in React Router v7 when running in Framework Mode. The vulnerability arises from insecure deserialization of TYPE_ERROR objects in the internal turbo-stream library, which resolves constructors from the global scope. If an application contains an independent prototype pollution vulnerability, an attacker can trigger unauthenticated Remote Code Execution (RCE) on the server.

Alon Barad
Alon Barad
9 views•5 min read
•about 11 hours ago•CVE-2026-47265
6.6

CVE-2026-47265: Cross-Origin Cookie Leakage in AIOHTTP Client Redirects

AIOHTTP prior to version 3.14.0 fails to clear request-specific cookies when executing cross-origin automatic HTTP redirects. This vulnerability allows remote web servers to harvest sensitive credentials and session cookies originally scoped to an authorized target domain.

Amit Schendel
Amit Schendel
7 views•6 min read
•about 11 hours ago•CVE-2026-49144
7.1

CVE-2026-49144: Unauthenticated Arbitrary File Read via Path Traversal in BrowserStack Runner

An unauthenticated path traversal vulnerability in BrowserStack Runner versions up to and including 0.9.5 allows remote or adjacent network attackers to read arbitrary files from the host system. The flaw exists within the local HTTP test server's fallback and patch file handlers, which fail to sanitize path inputs before passing them to file resolution APIs.

Amit Schendel
Amit Schendel
7 views•7 min read
•about 12 hours ago•CVE-2026-49143
8.8

CVE-2026-49143: Unauthenticated Remote Code Execution in browserstack-runner

An unauthenticated remote code execution (RCE) vulnerability exists in the browserstack-runner npm package (versions up to and including 0.9.5). The flaw lies in the /_log HTTP endpoint handler, which evaluates user-supplied input within a non-secure Node.js VM context combined with dynamic eval() execution. Network-adjacent attackers can exploit this behavior to escape the sandbox and execute arbitrary system commands on the host machine.

Alon Barad
Alon Barad
10 views•6 min read