{"answers":{"affected":"1 open source package ship an affected version, including mpp. It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-67581 in the wild and no public exploit code.","fix":"Upgrade mpp to 0.6.3 or later.","what":"CVE-2026-67581 is a high-severity authentication bypass vulnerability in ZenHive mpp, published on 19 Aug 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-67581 and fix it if it is affected.\n\nWhat it is: CVE-2026-67581 is a high-severity authentication bypass vulnerability in ZenHive mpp, published on 19 Aug 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-67581 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- mpp (Hex): affected from 0.3.0; fixed in 0.6.3\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-67581/ (Markdown: https://insights.sbomify.com/CVE-2026-67581/index.md)","id":"CVE-2026-67581","markdown":"https://insights.sbomify.com/CVE-2026-67581/index.md","name":"CVE-2026-67581","record":{"aliases":["EEF-CVE-2026-67581","GHSA-vp5h-xh25-44wf","GHSA-vrg5-xm7q-qcjh"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["security_bypass","data_read"],"network_reachable":"yes","non_default_config":false,"product_category":"EVM payment library","requires_auth":"none","summary":"Attackers can replay settled on-chain transfers to bypass payment verification and access paid resources in ZenHive mpp EVM payment methods.","user_interaction":"not_required","vuln_class":"auth_bypass"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"EEF","cpe":[{"product":"machine_payments_protocol","vendor":"zenhive"}],"cvss":{"score":8.7,"severity":"high","source":"cna","vector":"CVSS:4.0/AV:N/AC:L/AT:N/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 unauthenticated remote client to obtain paid resources by resubmitting one settled on-chain transfer.\n\nMPP.Methods.EVM.verify/2 accepts a transaction-hash credential and matches a transfer purely on token, to and amount (ERC-20) or to and value (native). It binds the proof neither to the challenge being verified nor to any record of prior use, and the generic MPP.Plug dedup store keys on challenge.id, which is regenerated for every 402 response. On a static-price route, a single historical transfer matching the charge therefore satisfies an unbounded number of later charges, including transfers an attacker can read off a public block explorer.\n\nThis issue affects mpp: from 0.3.0 before 0.6.3.","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":"On-chain transfer proof is not single-use in mpp EVM payment method, enabling cross-challenge replay","id":"CVE-2026-67581","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"Hex","product":null,"products":[],"type":"auth_bypass","year":"2026"},"n_packages":1,"n_references":4,"next":{"headline":"Atom Exhaustion via _entities Representation Keys in DivvyPayHQ absinthe_federation","id":"CVE-2026-67585"},"packages":[{"ecosystem":"Hex","fixed":["0.6.3"],"introduced":["0.3.0"],"last_affected":[],"package":"mpp","purl":"pkg:hex/mpp","source":"EEF-CVE-2026-67581"}],"prev":{"headline":"Filter expression injection via forged keyset pagination cursor in Ash","id":"CVE-2026-67579"},"products":["mpp"],"published":"2026-08-19","related":[{"cvss_score":8.3,"headline":"Denial of service in mpp","id":"CVE-2026-73541","kev_date_added":null,"published":"2026-08-19"},{"cvss_score":8.2,"headline":"Static memo configuration in mpp Tempo disables per-challenge attribution binding, enabling third-party replay","id":"CVE-2026-73136","kev_date_added":null,"published":"2026-08-19"},{"cvss_score":6.3,"headline":"Non-atomic hash-credential dedup in mpp Tempo allows replay of a confirmed payment under a concurrent race","id":"CVE-2026-73829","kev_date_added":null,"published":"2026-08-19"}],"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":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"yes","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-08-19","vendors":["ZenHive"]},"summary":"Attackers can replay settled on-chain transfers to bypass payment verification and access paid resources in ZenHive mpp EVM payment methods.","url":"https://insights.sbomify.com/CVE-2026-67581/"}