{"answers":{"affected":"1 open source package ship an affected version, including mpp.","exploited":"There is no known exploitation of CVE-2026-87119 in the wild and no public exploit code.","fix":"Upgrade mpp to 0.16.2 or later.","what":"CVE-2026-87119 is a high-severity authentication bypass vulnerability in ZenHive mpp, published on 22 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-87119 and fix it if it is affected.\n\nWhat it is: CVE-2026-87119 is a high-severity authentication bypass vulnerability in ZenHive mpp, published on 22 Sep 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-87119 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- mpp (Hex): affected from 0.14.0; fixed in 0.16.2\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-87119/ (Markdown: https://insights.sbomify.com/CVE-2026-87119/index.md)","id":"CVE-2026-87119","markdown":"https://insights.sbomify.com/CVE-2026-87119/index.md","name":"CVE-2026-87119","record":{"aliases":["EEF-CVE-2026-87119","GHSA-h97r-55w6-6rfg","GHSA-p9fv-9w58-95x2"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["privilege_escalation","data_modify"],"network_reachable":"yes","non_default_config":false,"product_category":"Elixir mpp library","requires_auth":"none","summary":"Attackers can replay captured subscription keys to repeatedly charge payers and re-authorize server keys due to missing challenge binding in ZenHive mpp.","user_interaction":"not_required","vuln_class":"auth_bypass"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"EEF","cpe":[],"cvss":{"score":8.2,"severity":"high","source":"cna","vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N","version":"4.0"},"cwes":[{"id":"CWE-294","name":"Authentication Bypass by Capture-replay"}],"description":"Authentication Bypass by Capture-replay in ZenHive mpp allows an attacker holding a captured subscription activation credential to charge the payer repeatedly.\n\nThe payer signs a Tempo KeyAuthorization over the chain id, key type, key id, expiry, limits and scopes only, with nothing tying it to the challenge that prompted it. MPP.Methods.Tempo.KeyAuthorization.verify/3 in lib/mpp/methods/tempo/key_authorization.ex pins each of those signed fields against the subscription request, and the access key it pins is a static per-endpoint server key, so one signed authorization verifies against every challenge the server issues for the same subscription terms. MPP.Methods.Tempo.Subscription.activate/4 deduplicates activations by challenge id, so presenting the captured credential under a fresh challenge produces a different dedup key, claim_activation succeeds, and the subscription transaction is built and broadcast again. Each replay charges the payer's wallet a new first-period settlement and re-authorizes the server key, bounded only by the subscription expiry and the chain's own semantics for re-installing an existing key.\n\nThis issue affects mpp: from 0.14.0 before 0.16.2.","ecosystems":["Hex"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"Auth bypass in mpp","id":"CVE-2026-87119","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"Hex","product":null,"products":[],"type":"auth_bypass","year":"2026"},"n_packages":1,"n_references":5,"next":{"headline":"Out-of-bounds write in lwIP TCP/IP Stack MQTT Client Application","id":"CVE-2026-87121"},"packages":[{"ecosystem":"Hex","fixed":["0.16.2"],"introduced":["0.14.0"],"last_affected":[],"package":"mpp","purl":"pkg:hex/mpp","source":"EEF-CVE-2026-87119"}],"prev":{"headline":"Botslab G980H Dashcams Out-of-bounds Write","id":"CVE-2026-87118"},"products":["mpp"],"published":"2026-09-22","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"Erlang Ecosystem Foundation","prefix":"EEF"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-09-22","vendors":["ZenHive"]},"summary":"Attackers can replay captured subscription keys to repeatedly charge payers and re-authorize server keys due to missing challenge binding in ZenHive mpp.","url":"https://insights.sbomify.com/CVE-2026-87119/"}