{"id":"CVE-2026-128044","kind":"vulnerability","aliases":["CVE-2026-128044"],"related":[],"title":"OpenMage magento-lts: OAuth callback check lets attackers steal access tokens","description":"OpenMage magento-lts before 20.18.2 and 21.x before 21.0.0-beta3 validates OAuth 1.0a oauth_callback URLs with a string-prefix check and falls back to accepting any well-formed URL. Attackers holding a leaked consumer key and secret can supply host-suffix, userinfo, or arbitrary callback URLs to capture an approving administrator's or customer's request token and verifier, then obtain an access token with the victim's API privileges.","summary":"OpenMage magento-lts validates OAuth 1.0a callback URLs with a string-prefix check that falls back to accepting any well-formed URL. An attacker holding a leaked consumer key and secret can redirect an approving admin's or customer's request token and verifier to their own server and obtain an access token with the victim's API privileges.","severity":"high","cvss":8.7,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["magento","magento-lts","oauth","openmage","php","runtime","self-hosted"],"not_affected_if":["no-leaked-consumer-keys","oauth-not-used","versions-patched"],"how_to_check":"- Check the installed version of magento-lts or OpenMage in composer.json or the lock file, and see whether it is below `20.18.2` on the 20.x line or below `21.0.0-beta3` on the 21.x line.\n- Check whether OAuth 1.0a API integrations are enabled in the admin under System > Integrations.\n- Check whether any OAuth consumer key and secret have leaked or been shared outside the team.","fix":"- magento-lts (20.x line): upgrade to `20.18.2`\n- magento-lts (21.x line): upgrade to `21.0.0-beta3`","status":"open","published_at":"2026-11-13T10:18:10+00:00","first_seen_at":"2026-11-13T10:47:32+00:00","triaged_at":"2026-11-13T10:50:19+00:00","updated_at":"2026-11-13T10:50:19+00:00","category":"runtime","confidence":0.8,"triage":{"at":"2026-11-13T10:50:19Z","model":"claude-haiku-5-5","output":{"fix":"- magento-lts (20.x line): upgrade to `20.18.2`\n- magento-lts (21.x line): upgrade to `21.0.0-beta3`","reach":"internet","title":"OpenMage magento-lts: OAuth callback check lets attackers steal access tokens","impact":"high","summary":"OpenMage magento-lts validates OAuth 1.0a callback URLs with a string-prefix check that falls back to accepting any well-formed URL. An attacker holding a leaked consumer key and secret can redirect an approving admin's or customer's request token and verifier to their own server and obtain an access token with the victim's API privileges.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["magento","openmage","magento-lts","php","oauth","self-hosted"],"confidence":0.8,"fix_status":"available","needs_auth":"yes","worst_case":"attacker takes over admin or customer API access using stolen tokens","analyst_note":"","how_to_check":"- Check the installed version of magento-lts or OpenMage in composer.json or the lock file, and see whether it is below `20.18.2` on the 20.x line or below `21.0.0-beta3` on the 21.x line.\n- Check whether OAuth 1.0a API integrations are enabled in the admin under System > Integrations.\n- Check whether any OAuth consumer key and secret have leaked or been shared outside the team.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["oauth-not-used","versions-patched","no-leaked-consumer-keys"],"who_is_affected":"Stores and sites running OpenMage magento-lts or an older Magento-based install that use OAuth 1.0a API integrations. The exposure requires a leaked consumer key and secret, so teams that never issued OAuth credentials outside the organisation are less exposed. unknown whether sources describe any other preconditions.","user_interaction":"yes","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.00082,"input_tokens":4684,"output_tokens":703,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-128044':15A,18A '-2026':14A,17A '1.0':36B,107C '20.18.2':98C '21':100C '21.0.0':103C 'accept':50B,122C 'access':11A,85B,162C 'admin':69B 'administr':150C 'api':91B,168C 'approv':68B,149C 'arbitrari':143C 'attack':9A,57B,128C 'back':48B,120C 'beta3':104C 'callback':6A,38B,110C,144C 'captur':147C 'check':7A,45B,117C 'consum':61B,132C 'custom':72B,153C 'cve':13A,16A 'fall':47B,119C 'form':54B,126C 'hold':58B,129C 'host':29B,139C 'host-suffix':138C 'key':62B,133C 'leak':60B,131C 'let':8A 'lts':4A,22B,33B,96C 'magento':3A,19B,21B,32B,95C 'magento-lt':2A,20B,31B,94C 'oauth':5A,23B,35B,106C,109C 'obtain':83B,160C 'openmag':1A,24B,30B,93C 'php':25B 'prefix':44B,116C 'privileg':92B,169C 'redirect':66B 'request':74B,155C 'runtim':26B 'secret':64B,135C 'self':28B 'self-host':27B 'server':81B 'steal':10A 'string':43B,115C 'string-prefix':42B,114C 'suffix':140C 'suppli':137C 'token':12A,75B,86B,156C,163C 'url':39B,55B,111C,127C,145C 'userinfo':141C 'valid':34B,105C 'verifi':77B,158C 'victim':89B,166C 'well':53B,125C 'well-form':52B,124C 'x':101C","nicknames":[],"mitigations":[],"who_affected":"Stores and sites running OpenMage magento-lts or an older Magento-based install that use OAuth 1.0a API integrations. The exposure requires a leaked consumer key and secret, so teams that never issued OAuth credentials outside the organisation are less exposed. unknown whether sources describe any other preconditions.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["high","magento","magentolts","oauth","openmage","php","runtime","selfhosted"],"campaign_type":null,"search_a":"'-128044':15A,18A '-2026':14A,17A 'access':11A 'attack':9A 'callback':6A 'check':7A 'cve':13A,16A 'let':8A 'lts':4A 'magento':3A 'magento-lt':2A 'oauth':5A 'openmag':1A 'steal':10A 'token':12A","search_b":"'1.0':36B 'accept':50B 'access':85B 'admin':69B 'api':91B 'approv':68B 'attack':57B 'back':48B 'callback':38B 'check':45B 'consum':61B 'custom':72B 'fall':47B 'form':54B 'hold':58B 'host':29B 'key':62B 'leak':60B 'lts':22B,33B 'magento':19B,21B,32B 'magento-lt':20B,31B 'oauth':23B,35B 'obtain':83B 'openmag':24B,30B 'php':25B 'prefix':44B 'privileg':92B 'redirect':66B 'request':74B 'runtim':26B 'secret':64B 'self':28B 'self-host':27B 'server':81B 'string':43B 'string-prefix':42B 'token':75B,86B 'url':39B,55B 'valid':34B 'verifi':77B 'victim':89B 'well':53B 'well-form':52B","search_c":"'1.0':107C '20.18.2':98C '21':100C '21.0.0':103C 'accept':122C 'access':162C 'administr':150C 'api':168C 'approv':149C 'arbitrari':143C 'attack':128C 'back':120C 'beta3':104C 'callback':110C,144C 'captur':147C 'check':117C 'consum':132C 'custom':153C 'fall':119C 'form':126C 'hold':129C 'host':139C 'host-suffix':138C 'key':133C 'leak':131C 'lts':96C 'magento':95C 'magento-lt':94C 'oauth':106C,109C 'obtain':160C 'openmag':93C 'prefix':116C 'privileg':169C 'request':155C 'secret':135C 'string':115C 'string-prefix':114C 'suffix':140C 'suppli':137C 'token':156C,163C 'url':111C,127C,145C 'userinfo':141C 'valid':105C 'verifi':158C 'victim':166C 'well':125C 'well-form':124C 'x':101C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-10-26T19:59:26+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:P/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-128044","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-128044","severity":null,"published_at":"2026-11-13T10:18:10+00:00","modified_at":"2026-11-13T10:18:10+00:00","first_seen_at":"2026-11-13T10:47:32+00:00","fetched_at":"2026-11-13T10:47:32+00:00","note":null}],"documents":[{"id":145393,"url":"https://github.com/OpenMage/magento-lts/commit/d03a00b60e4a2d4e5a00b44dbc66d25bc3b3fc8f","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":145394,"url":"https://github.com/OpenMage/magento-lts/security/advisories/GHSA-mffc-h5pf-6f42","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-10-26T19:59:26+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":145395,"url":"https://www.vulncheck.com/advisories/openmage-magento-lts-before-20.18.2-oauth-callback-url-allowlist-bypass","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}