CVE-2026-107180: MISP: Forced TOTP Enrolment Bypassed via Non-Browser Request Types on otp_required Instances
On MISP instances configured to require TOTP enrolment (Security.otprequired), the enforcement of the mandatory two-factor authentication setup applied only to standard browser requests. An authenticated user who had not yet enrolled in TOTP could bypass the forced setup by issuing any non-browser request type, including AJAX/XHR calls, REST API requests, .json format URLs, restSearch queries, or automation actions. Because these machine-readable request shapes cannot follow the redirect that the browser path uses to send the user to the TOTP enrolment page, the guard simply skipped the check and the user retained full access to the instance without completing the required second-factor setup.
The initial fix (commit 8deb0619e) added a guard specifically for AJAX requests. A follow-up fix (commit 6b527ba6e) broadened the guard to cover every non-browser request shape, while preserving the exemption for identities authenticated via API key (loggedbyauthkey flag).
Impact: an authenticated user on an otprequired instance can operate with full access indefinitely without enrolling in TOTP, nullifying the instance-level two-factor authentication policy.
Affected version: <2.5.48
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
MISPto a version that resolves this vulnerability.Fixed in 2.5.48
Event History
Frequently Asked Questions
Which deployments are affected?
MISP instances running versions earlier than 2.5.48 are affected when Security.otp_required is enabled. Instances that do not require TOTP enrolment are not exposed to this policy-bypass condition.
What does an attacker need to exploit this issue?
The attacker needs an authenticated MISP account that has not enrolled in TOTP. They can then use a non-browser request shape, such as an AJAX/XHR call, REST API request, .json URL, restSearch query, or automation action, to retain full access without completing enrolment.
What should be applied to remediate the issue?
Update to MISP 2.5.48 or later. The complete correction is represented by the follow-up change in commit 6b527ba6e, which extends enforcement to all non-browser request types; the earlier AJAX-only change in commit 8deb0619e is not the complete fix.