CVE-2025-15041
Official description Straight from the sourceThe vendor's or NVD's own wording, published unedited. Authoritative, but often terse — it says what broke, rarely what to do.
NVD · uneditedThe BackWPup – WordPress Backup & Restore Plugin plugin for WordPress is vulnerable to unauthorized modification of data that can lead to privilege escalation due to a missing capability check on the save_site_option() function in all versions up to, and including, 5.6.2. This makes it possible for authenticated attackers, with level access and above, to update arbitrary options on the WordPress site. This can be leveraged to update the default role for registration to administrator and enable user registration for attackers to gain administrative user access to a vulnerable site.
Technical summary Written by usOur analysis, written from the advisory, the CVSS vector and the affected-version data. It adds context the advisory leaves out, and never invents facts that are not in the source.
dbcve analysis · high confidenceThe BackWPup WordPress backup plugin (versions up to 5.6.2) lacks a capability check on its save_site_option() function, allowing any authenticated user with subscriber-level access or higher to modify arbitrary WordPress site options. Attackers can change the default user registration role to administrator and enable user registration, effectively creating an administrative account.
Verify against the referenced sources before acting — the references below are authoritative for this CVE, this summary is not.
CVSS breakdown How the score is builtThe industry scoring standard. It rates how the flaw is reached, what it takes to exploit, and what an attacker gains — the score is derived from those, not the other way round.
From the vector- Attack vector
- Network
- Complexity
- Low
- Privileges
- High
- User interaction
- None
- Scope
- Unchanged
- Confidentiality
- High
- Integrity
- High
- Availability
- High
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Am I affected? How to checkSteps we derive from the advisory and the affected-version data, so you can decide whether this CVE reaches your setup. They are a guide, not a scan — your own configuration is the authority.
dbcve checksWork through these to decide whether this CVE applies to you.
-
Verify BackWPup plugin versionIn WordPress admin, go to Plugins > Installed Plugins and find BackWPup, or check the plugin file /wp-content/plugins/backwpup/backwpup.php for the 'Version' header comment. Compare against affected versions up to 5.6.2.Affected if BackWPup version is 5.6.2 or earlier, or the Version header is missing/unreadable but the plugin is installed.
-
Confirm user registration is enabledIn WordPress admin, go to Settings > General > Membership, or query the database: SELECT option_value FROM wp_options WHERE option_name = 'users_can_register';Affected if The 'users_can_register' option value is set to 1 (enabled).
-
Check default user registration roleIn WordPress admin, go to Settings > General > New User Default Role, or query: SELECT option_value FROM wp_options WHERE option_name = 'default_role';Affected if The default_role is set to 'administrator' or any elevated role you did not intentionally set.
-
Audit user accounts for unauthorized administratorsIn WordPress admin, go to Users > All Users and review the list, or query: SELECT user_login, user_email FROM wp_users WHERE ID IN (SELECT user_id FROM wp_usermeta WHERE meta_key = 'wp_capabilities' AND meta_value LIKE '%administrator%');Affected if There are administrator accounts you did not create, or accounts with suspicious usernames/email addresses.
-
Check for recent user account creationQuery the wp_users table for recently created accounts: SELECT ID, user_login, user_email, user_registered FROM wp_users ORDER BY user_registered DESC LIMIT 10; Check the user_registered timestamp against when you expect the CVE disclosure or your last audit.Affected if Users were created after dates you expect, especially around periods when the vulnerability was publicly known.
You are affected if BackWPup version 5.6.2 or earlier is installed and active, AND user registration is enabled (users_can_register = 1), OR you discover unauthorized administrator accounts in your WordPress users.
Generated from the published advisory. Verify against your own configuration.
Remediation Closing itWhat it takes to close this. Where a vendor fix exists we point at it; where none exists we say so plainly, and can build one. Effort estimates are scoped from the advisory, not from your codebase.
dbcve · scopedUpdate to BackWPup version 5.6.3 or later. As an interim measure, disable user registration in WordPress settings and audit existing user accounts.
BackWPup version 5.6.3 or later
- Log in to WordPress admin dashboard
- Navigate to Plugins > Installed Plugins
- Find BackWPup plugin and check if update to version 5.6.3 or later is available
- If update available, click 'Update Now' to install the patched version
- After updating, verify the plugin is active and functioning properly
- If the plugin was used to change registration settings to mitigate the vulnerability, review and reset those settings (e.g., set default role back to Subscriber, disable new user registration if not needed)
Generated from the published advisory — verify against the referenced sources before acting.
- Consultation2.0 h
- Implementation2.0 h
- Testing3.0 h
- Review / QA1.0 h
An estimate, not a bill — we confirm scope with you before any work starts. Need it this week? Rush from $2,224.
Scan for this in your stack
Free · runs locallyCheck whether your project pulls in CVE-2025-15041 — or any other known-vulnerable package — straight from your lock files. Free and open source; it runs locally and uploads nothing.
References Go to the primary sourcePrimary sources — vendor advisories, patches and trackers. Where our summary and a reference disagree, the reference wins.
Primary sourcesPractitioner notes
ContributedPeer-ranked notes from engineers who’ve handled CVE-2025-15041 in production — separate from our analysis above.
The advisory tells you what broke. It rarely tells you what actually worked. If you’ve dealt with this one, that detail is what the next engineer is searching for.
- The version that genuinely resolved it — not the one the vendor claimed
- A config change or rule that shut the vector down
- A gotcha in the upgrade path that cost you an afternoon
No notes yet
Be the first to add a field note for this CVE — a mitigation you’ve verified, a version caveat, or a link to a working fix. Sign in above to contribute.
A place for practitioners to share what actually worked: a mitigation you’ve tested, a configuration change, a version- or environment-specific caveat, or a link to a verified patch. The most useful notes rise to the top as peers upvote them, so the signal stays high.
- Verified mitigations, workarounds, and config changes
- Version or environment caveats, and links to real fixes
- No weaponised exploit code, or anything meant to cause harm
- No spam, self-promotion, credentials, or personal data