CVE-2026-104749
7.5HighPublished 14 Oct 2026 · NVD status: Deferred · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- Required
- Impact
- Full C/I/A compromise
- Weakness
- CWE-269
Impact
Unauthenticated attackers can take over administrator accounts by overwriting their passwords. This requires a flow mapping a form field to user_pass and an admin clicking 'Re-execute' on the resulting failed log entry.
Root cause
The plugin stores raw anonymous form input directly in logs and re-executes it within the administrator's authenticated session without identity validation, passing attacker-supplied passwords to updateUser().
Affected systems
Bit integrations – Form Integration, Webhook, Spreadsheets, CRM, LMS & Email Automation plugin for WordPress up to, and including, 2.10.6
CVSS v3.1 · CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
Fix & remediation
Upgrade to a version past 2.10.6 once available. In the meantime, avoid clicking 'Re-execute' on failed log entries or deactivate flows mapping form inputs to user_pass in WP User Registration.
$ wp plugin update bit-integrationsAI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
The Bit integrations – Form Integration, Webhook, Spreadsheets, CRM, LMS & Email Automation plugin for WordPress is vulnerable to Privilege Escalation via Log Re-execution in all versions up to, and including, 2.10.6 The vulnerability exists because `IntegrationHandler::executeWithCapture()` stores raw, attacker-controlled field values — including `user_pass` and `user_email` — verbatim into `wp_btcbi_log.field_data` on anonymous front-end requests with no capability check, and `LogHandler::reexecute()` feeds that stored payload back through `Flow::execute()` inside the replaying administrator's session without validating the identity that originally produced the data, causing `RegistrationController::updateUser()` to resolve the target user ID to the administrator and write the attacker-supplied password via `wp_update_user()`. This makes it possible for unauthenticated attackers to overwrite the administrator's password and fully take over the administrator account. Exploitation requires that an administrator has configured a flow mapping a user-supplied form field to the `user_pass` parameter of the WP User Registration "Update User" action, and that the administrator subsequently clicks "Re-execute" on the failure log row produced by the anonymous submission from the plugin's log screen.
References
- https://plugins.trac.wordpress.org/browser/bit-integrations/tags/2.10.6/backend/Actions/Registration/RegistrationController.php#L309
- https://plugins.trac.wordpress.org/browser/bit-integrations/tags/2.10.6/backend/Core/Integration/IntegrationHandler.php#L39
- https://plugins.trac.wordpress.org/browser/bit-integrations/tags/2.10.6/backend/Log/LogHandler.php#L290
- https://plugins.trac.wordpress.org/browser/bit-integrations/tags/2.10.6/backend/Log/LogHandler.php#L553
- https://plugins.trac.wordpress.org/browser/bit-integrations/tags/2.10.6/backend/Triggers/CF7/CF7Controller.php#L139
- https://plugins.trac.wordpress.org/changeset/3730118/bit-integrations/trunk/backend/Log/LogHandler.php
- https://www.wordfence.com/threat-intel/vulnerabilities/id/24f112eb-4abe-4acf-a769-c93246e30958?source=cve