{"id":"CVE-2026-121728","kind":"vulnerability","aliases":["CVE-2026-121728"],"related":[],"title":"SourceHut meta.sr.ht: unauthenticated account registration when public signup is disabled","description":"SourceHut meta.sr.ht 0.56.11 before 0.89.0 contains an authorization bypass vulnerability that allows unauthenticated attackers to register accounts when public registration is disabled. Attackers can obtain a CSRF token from /login and POST credentials to /register/step2, which invokes the unchecked GraphQL RegisterAccount mutation to create accounts.","summary":"SourceHut meta.sr.ht versions from 0.56.11 up to but not including 0.89.0 skip the check that blocks new sign-ups when public registration is turned off. An unauthenticated attacker can create accounts by fetching a CSRF token from the login page and posting to the registration step, which calls an unchecked GraphQL mutation.","severity":"medium","cvss":6.9,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["meta.sr.ht","self-hosted","sourcehut","vendor"],"not_affected_if":["managed-hosting","public-registration-enabled"],"how_to_check":"- Check the running `meta.sr.ht` version and whether it is between `0.56.11` and `0.89.0`\n- Check whether public registration is disabled on the instance and whether accounts were created that nobody authorized","fix":"- Move to `0.89.0` or later, per the advisory's stated range","status":"open","published_at":"2026-11-03T23:17:36+00:00","first_seen_at":"2026-11-03T23:45:14+00:00","triaged_at":"2026-11-03T23:45:36+00:00","updated_at":"2026-11-03T23:45:36+00:00","category":"vendor","confidence":0.6,"triage":{"at":"2026-11-03T23:45:36Z","model":"claude-haiku-5-5","output":{"fix":"- Move to `0.89.0` or later, per the advisory's stated range","reach":"internet","title":"SourceHut meta.sr.ht: unauthenticated account registration when public signup is disabled","impact":"medium","summary":"SourceHut meta.sr.ht versions from 0.56.11 up to but not including 0.89.0 skip the check that blocks new sign-ups when public registration is turned off. An unauthenticated attacker can create accounts by fetching a CSRF token from the login page and posting to the registration step, which calls an unchecked GraphQL mutation.","audience":"businesses","category":"vendor","nicknames":[],"who_cares":["self-hosted","sourcehut","meta.sr.ht"],"confidence":0.6,"fix_status":"available","needs_auth":"no","worst_case":"Attacker creates unauthorized accounts on a closed instance","analyst_note":"","how_to_check":"- Check the running `meta.sr.ht` version and whether it is between `0.56.11` and `0.89.0`\n- Check whether public registration is disabled on the instance and whether accounts were created that nobody authorized","plain_action":"","needs_analyst":false,"not_affected_if":["managed-hosting","public-registration-enabled"],"who_is_affected":"Teams that self-host meta.sr.ht, the SourceHut account and sign-in service, with public registration disabled. SourceHut's hosted service is the vendor's to patch; self-hosters must update themselves. Instances with public registration enabled are not affected by this bypass.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000701,"input_tokens":4183,"output_tokens":566,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-121728':13A,16A '-2026':12A,15A '/login':105C '/register/step2':110C '0.56.11':27B,78C '0.89.0':33B,80C 'account':4A,54B,92C,120C 'allow':87C 'attack':51B,89C,98C 'author':83C 'block':38B 'bypass':84C 'call':71B 'check':36B 'contain':81C 'creat':53B,119C 'credenti':108C 'csrf':58B,102C 'cve':11A,14A 'disabl':10A,97C 'fetch':56B 'graphql':74B,115C 'host':20B 'includ':32B 'invok':112C 'login':62B 'meta.sr.ht':2A,17B,24B,77C 'mutat':75B,117C 'new':39B 'obtain':100C 'page':63B 'post':65B,107C 'public':7A,44B,94C 'regist':91C 'registeraccount':116C 'registr':5A,45B,68B,95C 'self':19B 'self-host':18B 'sign':41B 'sign-up':40B 'signup':8A 'skip':34B 'sourcehut':1A,21B,23B,76C 'step':69B 'token':59B,103C 'turn':47B 'unauthent':3A,50B,88C 'uncheck':73B,114C 'up':42B 'vendor':22B 'version':25B 'vulner':85C","nicknames":[],"mitigations":[],"who_affected":"Teams that self-host meta.sr.ht, the SourceHut account and sign-in service, with public registration disabled. SourceHut's hosted service is the vendor's to patch; self-hosters must update themselves. Instances with public registration enabled are not affected by this bypass.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","metasrht","selfhosted","sourcehut","vendor"],"campaign_type":null,"first_public_at":"2026-11-03T23:17:36+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/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-121728","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-121728","severity":null,"published_at":"2026-11-03T23:17:36+00:00","modified_at":"2026-11-03T23:17:36+00:00","first_seen_at":"2026-11-03T23:45:14+00:00","fetched_at":"2026-11-03T23:45:14+00:00","note":null}],"documents":[{"id":61637,"url":"https://www.vulncheck.com/advisories/sourcehut-meta-sr-ht-0.56.11-before-0.89.0-registration-authorization-bypass-via-register-step2","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"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}