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



CVE-2025-34509

The 'b' Key to the Kingdom: Sitecore Hardcoded Credentials

Alon Barad
Alon Barad
Software Engineer

Jan 30, 2026·6 min read·32 visits

Executive Summary (TL;DR)

Sitecore shipped a database snapshot with a hardcoded user 'sitecore\ServicesAPI' having the password 'b'. Attackers can use this to get a valid session cookie, bypassing 'web.config' restrictions and opening the door to RCE vulnerabilities like CVE-2025-34510.

A critical lapse in database seeding practices left a default user account enabled in Sitecore Experience Manager and Experience Platform versions 10.1 through 10.4. The account, 'sitecore\ServicesAPI', was configured with the single-character password 'b'. While this user lacks administrative privileges, the valid session it generates allows attackers to bypass IIS-level authentication checks, serving as the necessary precursor for critical Remote Code Execution chains.

The Hook: Enterprise Complexity Meets Lazy Defaults

Enterprise CMS solutions like Sitecore are architectural behemoths. They are designed to manage content for some of the largest organizations on the planet, consisting of complex pipelines, databases, and authentication providers. When you install such a system, you aren't just copying files; you are hydrating a massive ecosystem.

Part of this hydration process involves the 'Core' database, which manages system settings, users, and security configuration. In the shift to version 10.1, Sitecore modernized how they deploy this database using DACPAC (Data-Tier Application Package) files. Think of a DACPAC as a vacuum-sealed snapshot of a database schema and its default data.

But here is the problem with snapshots: if you take a picture of your house while the back door is unlocked, every house built from that blueprint will have the back door unlocked. In Sitecore's case, they didn't just leave a door unlocked; they left a key under the mat. And the key was the letter 'b'.

The Flaw: A History Lesson in One Letter

During the analysis of Sitecore.Core.dacpac, researchers at watchTowr Labs noticed something peculiar in the dbo.aspnet_Membership table. This table holds the legacy ASP.NET Membership credentials. Among the rows of data was a user account named sitecore\ServicesAPI.

Now, ServicesAPI sounds like an internal service account—something that should probably be disabled or have a 64-character random password. Instead, the password hash stored in the database corresponded to a single character: 'b'.

Why 'b'? Veterans of the Sitecore ecosystem might chuckle. In the ancient days of Sitecore (think version 6 or 7), the default password for the admin account was often 'b'. It seems that during the creation of the version 10.1 master database image, a developer or a migration script carried this legacy credential forward, baking it into the installer. Because DACPACs are binary deployments, this hardcoded credential wasn't visible in plain text config files, allowing it to slip past code reviews and into production environments for nearly four years.

The Mechanism: Bypassing the Gatekeeper

You might be thinking, "So what? It's a service account with no roles." And you would be half-right. If you try to log into the main Sitecore shell with this account, the application logic usually kicks you out. The Sitecore.Owin.Authentication pipeline has a specific processor that checks if you are an administrator or a specific client user.

However, security is often a game of layers, and the outer layer is usually IIS and web.config rules. Many sensitive directories in Sitecore (like /sitecore/admin or /sitecore/shell) are protected by standard ASP.NET authorization rules:

<authorization>
  <deny users="?" />
</authorization>

The ? represents anonymous users. To get past this check, you don't need to be an admin; you just need to be authenticated. By sending a POST request to the authentication API with the username ServicesAPI and the password b, the server issues a valid .AspNet.Cookies session cookie.

This cookie is the golden ticket. It tells IIS, "I am a known user." IIS lets the request through to the underlying ASPX files. Even if the Sitecore application layer eventually says "Hey, you don't have permission to view this specific page," you have already breached the perimeter. You are now inside the authenticated attack surface, where much more dangerous bugs live.

The Exploit: Logging in with 'b'

Exploiting this is embarrassingly simple. No memory corruption, no race conditions, just a polite request to the login API. Here is how an attacker creates a session:

  1. Target: The ItemService authentication endpoint at /sitecore/api/ssc/auth/login.
  2. Payload: A JSON object containing the credentials.
POST /sitecore/api/ssc/auth/login HTTP/1.1
Host: target.com
Content-Type: application/json
 
{
  "domain": "sitecore",
  "username": "ServicesAPI",
  "password": "b"
}

If the server responds with a 200 OK and a Set-Cookie header containing .AspNet.Cookies, the game is effectively over. The attacker can now take that cookie and browse to endpoints that were previously returning 403 Forbidden or 302 Redirect to login.

While CVE-2025-34509 is ostensibly just an authentication bypass, it is rarely used alone. It is the prerequisite for CVE-2025-34510, a Zip Slip vulnerability in Upload2.aspx. That file is protected by the web.config rule mentioned earlier. Without the 'b' password, the attacker can't reach the upload handler. With it, they can upload a web shell and achieve full Remote Code Execution.

The Impact: From 'b' to SYSTEM

The CVSS score of 7.5 might seem modest because it's technically "only" a privilege escalation to a low-privilege user. Do not be fooled. In the context of Sitecore, this is a gateway drug to total compromise.

Once an attacker has bypassed the initial authentication check, they expose the soft underbelly of the CMS—administrative tools, debugging handlers, and legacy uploaders that were never meant to be exposed to the public internet. The specific combination of CVE-2025-34509 (Auth Bypass) and CVE-2025-34510 (File Write) allows an unauthenticated attacker to execute code as the IIS AppPool user, which often has modify rights to the webroot.

From there, data exfiltration is trivial. Customer data, marketing strategies, and user credentials stored in the SQL database are open for the taking. For a platform designed to host global brands, the reputational damage is catastrophic.

The Fix: Rotate and Restrict

If you are running Sitecore 10.1 through 10.4, you are likely vulnerable unless you manually changed this password previously. The official patch from Sitecore updates the DACPACs for future installs, but it might not automatically fix existing databases.

Immediate Remediation Steps:

  1. Change the Password: Log in to the Sitecore Desktop, open the User Manager, find sitecore\ServicesAPI, and change the password to a strong, random string. Alternatively, execute a SQL update against the Core database aspnet_Membership table (though UI is safer).
  2. Apply the Patch: Install the relevant hotfix (e.g., KB1003667) to ensure future instances or re-deployments are secure.
  3. Network Segmentation: Restrict access to /sitecore/admin and /sitecore/api endpoints. These should not be exposed to the open internet. Use WAF rules to block external access to these paths.

> [!NOTE] > Changing the password for ServicesAPI does not break core functionality in a standard setup, as this account is largely a vestigial artifact or used for specific internal service calls that can be reconfigured.

Official Patches

SitecoreSitecore Security Advisory KB1003667

Technical Appendix

CVSS Score
7.5/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
EPSS Probability
23.18%
Top 4% most exploited

Affected Systems

Sitecore Experience Manager (XM)Sitecore Experience Platform (XP)

Affected Versions Detail

Product
Affected Versions
Fixed Version
Sitecore XM/XP
Sitecore
10.1.0 - 10.1.310.1.4
Sitecore XM/XP
Sitecore
10.2.xSee Vendor Advisory
Sitecore XM/XP
Sitecore
10.3.0 - 10.3.210.3.3
Sitecore XM/XP
Sitecore
10.4.010.4.1
AttributeDetail
CWE IDCWE-798
Attack VectorNetwork
CVSS Score7.5 (High)
EPSS Score23.18%
Exploit StatusPoC Available
LikelihoodHigh

MITRE ATT&CK Mapping

T1078Valid Accounts
Initial Access
T1078.001Default Accounts
Initial Access
T1190Exploit Public-Facing Application
Initial Access
CWE-798
Use of Hard-coded Credentials

The use of hard-coded credentials, such as passwords or cryptographic keys, typically creates a significant hole that allows an attacker to bypass the authentication that has been configured by the software administrator.

Known Exploits & Detection

NucleiNuclei template to check for successful login with 'b' password.

Vulnerability Timeline

Vulnerability reported by watchTowr Labs
2025-02-01
Patches released to customers
2025-05-01
Public Disclosure & CVE Published
2025-06-17

References & Sources

  • [1]watchTowr Labs Research
Related Vulnerabilities
CVE-2025-34510CVE-2025-34511

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•1 day ago•GHSA-7PPR-R889-MCF2
7.5

GHSA-7PPR-R889-MCF2: Unbounded WebSocket Message Aggregation in http4s-blaze-server leads to Denial of Service

An uncontrolled resource consumption vulnerability exists in the Scala-based http4s-blaze-server package of the http4s/blaze library. The vulnerability allows remote, unauthenticated attackers to cause an Out of Memory Error (OOM) and JVM crash by streaming a continuous sequence of small or empty WebSocket continuation frames with the FIN bit set to 0. This bypasses typical payload size checks because of the JVM's per-object allocation overhead, leading to rapid heap exhaustion with minimal network bandwidth.

Alon Barad
Alon Barad
7 views•5 min read
•1 day ago•GHSA-95CV-R8X4-VH75
7.6

GHSA-95cv-r8x4-vh75: Path Traversal Vulnerability in OpenList Batch Rename Handler

A critical path traversal vulnerability has been identified in the OpenList Go-based backend package. The vulnerability exists within the batch rename handler because the application does not validate the source filename parameter before constructing filesystems paths. This omission allows authenticated users to escape their designated directory and rename files in sibling paths.

Amit Schendel
Amit Schendel
8 views•7 min read
•1 day ago•GHSA-P6PH-3JX2-3337
4.3

GHSA-P6PH-3JX2-3337: Horizontal Privilege Escalation and Metadata Information Disclosure via Bleve Search in OpenList

OpenList version 4.2.3 and prior is vulnerable to an authorization bypass and metadata leakage. When configured with the Bleve search engine backend, OpenList fails to perform separator-aware path matching when validating tenant containment. This allows authenticated users to access sibling directories sharing similar name prefixes. Furthermore, the search backend returns unfiltered global result counts, leaking existence verification data of unauthorized files via side-channel analysis.

Amit Schendel
Amit Schendel
8 views•5 min read
•1 day ago•GHSA-86CX-WWF4-PHQ4
6.5

GHSA-86cx-wwf4-phq4: Path Prefix Confusion Authorization Bypass in OpenList

An authorization bypass vulnerability in OpenList version 4.2.3 and below allows authenticated users to read arbitrary files outside of their designated base directories due to an insecure path prefix check using Go's standard strings.HasPrefix function.

Amit Schendel
Amit Schendel
7 views•6 min read
•1 day ago•CVE-2026-16584
7.0

CVE-2026-16584: Security Policy Bypass in AWS API MCP Server via Startup Initialization Failure

A security policy bypass vulnerability exists in the AWS API MCP Server (awslabs-aws-api-mcp-server) from version 0.2.13 through 1.3.46. When the server fails to load the read-only operations index during startup (due to transient network failures, file permission issues, or other exceptions), it logs a warning but continues running in an insecure, degraded state. Under this condition, the security policy engine fails open, silently skipping all subsequent security checks and consent prompts for the lifetime of the process. This permits unauthorized mutating AWS CLI commands to execute via indirect prompt injection attacks.

Amit Schendel
Amit Schendel
12 views•7 min read
•1 day ago•GHSA-6V4M-FW66-8R4X
6.5

GHSA-6V4M-FW66-8R4X: Path Disclosure and Shell Expansion Bypass in Shescape

An incomplete escaping vulnerability in the npm package 'shescape' allows unauthenticated users to trigger dynamic shell expansions, absolute path disclosure, and command block break-outs on Unix and Windows systems.

Alon Barad
Alon Barad
6 views•7 min read