MISP up to 2.5.45 LdapAuth/LinOTPAuth _checkFields email/password hard-coded password
| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 7.0 | $0-$5k | 3.32 |
Summary
A vulnerability marked as critical has been reported in MISP up to 2.5.45. Affected by this issue is the function _checkFields of the component LdapAuth/LinOTPAuth. The manipulation of the argument email/password leads to hard-coded password.
This vulnerability is uniquely identified as CVE-2026-90961. The attack is possible to be carried out remotely. No exploit exists.
It is suggested to upgrade the affected component.
Details
A vulnerability was found in MISP up to 2.5.45 and classified as critical. This issue affects the function _checkFields of the component LdapAuth/LinOTPAuth. The manipulation of the argument email/password with an unknown input leads to a hard-coded password vulnerability. Using CWE to declare the problem leads to CWE-259. The product contains a hard-coded password, which it uses for its own inbound authentication or for outbound communication to external components. Impacted is confidentiality, integrity, and availability. The summary by CVE is:
The LdapAuth and LinOTPAuth authentication plugins in MISP contain an authentication bypass vulnerability. Both LdapAuthenticate and LinOTPAuthenticate replace CakePHP's FormAuthenticate class but fail to replicate its _checkFields() input validation guard. As a result, the email and password fields extracted from the login request are passed to downstream authentication logic without verifying that they are non-empty strings. In the LDAP authenticator, an empty or null password is forwarded to ldap_bind(). Per RFC 4513 section 5.1.2, a bind request with a valid DN and an empty password constitutes an unauthenticated bind, which many LDAP directory servers accept as successful. An attacker who knows any valid user email address in the directory can therefore authenticate as that user without possessing a password. Additionally, non-string values (null, false, arrays) are either coerced to empty strings by ldap_bind(), raise TypeErrors, or are misinterpreted as find conditions in _findUser(), all of which can lead to unintended authentication outcomes. In the LinOTP authenticator, the same missing guard allows non-string credentials to be concatenated into the LinOTP verification request, and in the mixed-authentication branch an empty password is accepted against a stored hash of the empty string. A secondary issue in the LDAP authenticator is that newly created user accounts (auto-provisioned on first LDAP login) were assigned an empty password. Because the save path skips validation, the empty string is hashed and stored. If the user later ceases to be found in LDAP and the mixed-authentication fallback is used, the stored hash of the empty string verifies against an empty password, again permitting unauthenticated access. The vulnerability requires that the affected plugin (LdapAuth or LinOTPAuth) is enabled on the MISP instance and that the attacker knows at least one valid email address registered in the directory or MISP user store. No prior authentication is required. Successful exploitation grants the attacker the full privileges of the impersonated user, which may include administrative access to threat intelligence data. Version affected: ≤2.5.45
It is possible to read the advisory at github.com. The identification of this vulnerability is CVE-2026-90961 since 09/14/2026. The exploitation is known to be easy. The attack may be initiated remotely. No form of authentication is needed for a successful exploitation. Technical details of the vulnerability are known, but there is no available exploit. The attack technique deployed by this issue is T1078.001 according to MITRE ATT&CK.
Upgrading to version 2.5.46 eliminates this vulnerability. Applying the patch 0ee058548 is able to eliminate this problem. The best possible mitigation is suggested to be upgrading to the latest version.
The vulnerability is also documented in the vulnerability database at EUVD (EUVD-2026-77473). Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Product
Name
Version
- 2.5.0
- 2.5.1
- 2.5.2
- 2.5.3
- 2.5.4
- 2.5.5
- 2.5.6
- 2.5.7
- 2.5.8
- 2.5.9
- 2.5.10
- 2.5.11
- 2.5.12
- 2.5.13
- 2.5.14
- 2.5.15
- 2.5.16
- 2.5.17
- 2.5.18
- 2.5.19
- 2.5.20
- 2.5.21
- 2.5.22
- 2.5.23
- 2.5.24
- 2.5.25
- 2.5.26
- 2.5.27
- 2.5.28
- 2.5.29
- 2.5.30
- 2.5.31
- 2.5.32
- 2.5.33
- 2.5.34
- 2.5.35
- 2.5.36
- 2.5.37
- 2.5.38
- 2.5.39
- 2.5.40
- 2.5.41
- 2.5.42
- 2.5.43
- 2.5.44
- 2.5.45
License
Website
- Product: https://github.com/MISP/MISP/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Reliability: 🔍
CNA CVSS-B Score: 🔒
CNA CVSS-BT Score: 🔒
CNA Vector: 🔒
CVSSv3
VulDB Meta Base Score: 7.3VulDB Meta Temp Score: 7.0
VulDB Base Score: 7.3
VulDB Temp Score: 7.0
VulDB Vector: 🔒
VulDB Reliability: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍
Exploiting
Class: Hard-coded passwordCWE: CWE-259 / CWE-255
CAPEC: 🔒
ATT&CK: 🔒
Physical: No
Local: No
Remote: Yes
Availability: 🔒
Status: Not defined
Price Prediction: 🔍
Current Price Estimation: 🔒
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: MISP 2.5.46
Patch: 0ee058548
Timeline
09/14/2026 Advisory disclosed09/14/2026 CVE reserved
09/14/2026 VulDB entry created
09/14/2026 VulDB entry last update
Sources
Product: github.comAdvisory: github.com
Status: Confirmed
CVE: CVE-2026-90961 (🔒)
GCVE (CVE): GCVE-0-2026-90961
GCVE (VulDB): GCVE-100-403547
EUVD: 🔒
Entry
Created: 09/14/2026 15:47Updated: 09/14/2026 17:17
Changes: 09/14/2026 15:47 (69), 09/14/2026 17:17 (1)
Complete: 🔍
Cache ID: 216::103
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
No comments yet. Languages: en.
Please log in to comment.