{"id":"CVE-2026-107276","summary":"MISP Email OTP Race Condition Allows One-Time Password to Be Consumed by Multiple Concurrent Requests","details":"MISP contains a race condition in the email-based one-time password (OTP) login flow. When two HTTP requests carrying the same valid OTP are submitted concurrently, both can successfully authenticate and establish a session. The root cause is that the OTP value is read from the shared store, validated, and then deleted in separate non-atomic steps, allowing a second in-flight request to read the same value before the first request's deletion takes effect.\n\nPreconditions:\n\n- The target MISP instance has email OTP login enabled.\n\n- The attacker possesses a valid, unexpired OTP (e.g., via email interception or social engineering).\n\n- The attacker can issue two HTTP POST requests in close temporal proximity.\n\nImpact:\n\n- The one-time-use guarantee of the OTP is violated; a single code can yield two authenticated sessions.\n\n- This weakens the authentication control and may facilitate unauthorized access if the OTP is shared or intercepted.\n\nAffected versions: \u003c2.5.48","modified":"2026-10-08T10:30:31.916535812Z","published":"2026-10-07T15:36:49.564Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/107xxx/CVE-2026-107276.json","cna_assigner":"CIRCL","cwe_ids":["CWE-362","CWE-367"]},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/107xxx/CVE-2026-107276.json"},{"type":"PACKAGE","url":"https://github.com/MISP/MISP"},{"type":"FIX","url":"https://github.com/MISP/MISP/commit/ba95e67d5"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-107276"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/misp/misp","events":[{"introduced":"0"},{"fixed":"63d46c54ccccd646fa352ee74d218f618ccce75b"}],"database_specific":{"source":"AFFECTED_FIELD","extracted_events":[{"introduced":"0"},{"fixed":"2.5.48"}]}}],"versions":["v2.5.47","v2.5.46","v2.5.45","v2.5.44","v2.5.43","v2.5.42","v2.5.41","v2.5.40","v2.5.39","v2.5.37","v2.5.36","v2.5.35","v2.5.34","v2.5.33","v2.5.32","v2.5.31","v2.5.30","v2.5.29","v2.5.28","v2.5.27","v2.5.26","v2.5.25","v2.5.24","v2.5.23","v2.5.22","v2.5.21","v2.5.20","v2.5.19","v2.5.18","v2.5.17","v2.5.16","v2.5.15","v2.5.12","v2.5.14","v2.5.13","v2.5.11","v2.5.10","v2.5.9","v2.5.8","v2.5.7","v2.5.0","v2.4.196","v2.4.195","v2.4.194","v2.4.193","v2.4.192","v2.4.191","v2.4.190","v2.4.189","v2.4.188","v2.4.187","v2.4.186","v2.4.175","v2.4.185","v2.4.183","v2.4.184","v2.4.153","v2.4.152","v2.4.137","v2.4.136","v2.4.134","v2.4.133","v2.4.130","v2.4.128","v2.4.127","v2.4.125","v2.4.123","v2.4.122","v2.4.121","v2.4.120","v2.4.118","v2.4.111","rm","v2.4.110","v2.4.109","codename/tellurium","v2.4.107","v2.4.106","v2.4.102","v2.4.101","v2.4.100","v2.4.98","v2.4.96","v2.4.95","v2.4.94","v2.4.93","v2.4.91","v2.4.89","v2.4.88","v2.4.87","v2.4.86","v2.4.85","v2.4.83","v2.4.82","v2.4.80","v2.4.78","v2.4.65","v2.4.64","v2.4.63","v2.4.62","v2.4.61","v2.4.60","v2.4.59","v2.4.58","v2.4.57","v2.4.56","v2.4.54","v2.4.53","v2.4.52","v2.4.51","v2.4.50","v2.4.48","v2.4.47","v2.4.46","v2.4.45","v2.4.43","v2.4.39","v2.4.38","v2.4.37","v2.4.36","v2.4.35","v2.4.34","v2.4.27","v2.4.26","v2.4.25","v2.4.24","v2.4.23","v2.4.22","v2.4.21","v2.4.20","v2.4.18","v2.4.17","v2.4.16","v2.4.15","v2.4.14","v2.4.13","v2.4.11","v2.4.10","v2.4.9","v2.4.7","v2.4.5","v2.4.4","v2.4.3","v2.4.2","v2.4.1","v2.4.0","v2.3.0","v0.2"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-107276.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N"}]}