CVE-2026-91851: MISP Dashboard Template ACL Bypass Due to VARCHAR-to-Integer Type Coercion in Permission Flag Comparison

Published Sep 15, 2026
·
Updated

Affected versions of MISP incorrectly filter dashboard templates that are restricted to a specific permission flag.

DashboardsController::listTemplates() allowed a template when either:

- its restricttopermissionflag matched one of the current user’s permission flags, or

- restricttopermissionflag equaled integer 0

However, restricttopermissionflag is a varchar. MySQL therefore performed numeric coercion when comparing the column against integer 0. Strings such as permsiteadmin convert numerically to zero, making expressions such as permsiteadmin = 0 evaluate true and causing the “unrestricted” branch to match permission-restricted templates as well.

Version affected: ≤2.5.45

Affected Software

1 affected component
MISP<=2.5.45

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade MISP to a version that resolves this vulnerability.

    Fixed in 2.5.45
  2. Configuration

    In the code path that filters dashboard templates in DashboardsController::listTemplates(), replace the integer literal 0 used in the restrict_to_permission_flag comparison with explicit string values '' and '0' to prevent VARCHAR-to-integer coercion that causes restricted templates to be treated as unrestricted.

    MISP DashboardsController::listTemplates() restrict_to_permission_flag comparison literal for unrestricted templates = Use explicit string values '' and '0' instead of integer 0 (i.e., compare restrict_to_permission_flag to '' and to '0')

Event History

Sep 15, 2026
CVE Published
via MITRE·08:50 AM
Data Sourced
via MITRE·08:50 AM
RemedyDescriptionWeakness

Frequently Asked Questions

1

Who can view the affected dashboard templates?

Any user able to access the template listing may be shown templates restricted to permission flags stored as non-numeric strings, such as perm_site_admin. The faulty comparison can treat those string-valued restrictions as unrestricted.

2

What does an attacker need to exploit this issue?

The issue is triggered through DashboardController::listTemplates() when listing dashboard templates. No special permission flag matching the template restriction is required for the unrestricted comparison branch to match.

3

Are default installations affected?

Affected MISP versions through 2.5.45 are vulnerable when dashboard templates use non-numeric permission-flag values in restrict_to_permission_flag. The provided data does not establish whether such restricted templates exist in a default installation.

4

How can administrators determine whether they are exposed?

Check whether the MISP deployment is version 2.5.45 or earlier and whether dashboard templates have restrict_to_permission_flag values containing permission-flag strings rather than numeric values. Such templates may be returned to users who do not hold the specified flag.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203