NVD’s record for CVE-2026-121728 states the bug compactly: “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.” It goes on to name the path, “which invokes the unchecked GraphQL RegisterAccount mutation to create accounts.”

Where the check went missing

The researcher’s write-up traces it to a refactor rather than a decision. “Back in 2021, while moving registration code from the frontend to the graphql backend, a subtle logic bug got introduced.” The page said registration was closed, and “the form handler is still there.” Then the sentence that carries the story: “It correctly states that registration is closed on every error path, but on the happy path it does not seem to ever check it.”

That is the shape of the bug. The setting was honoured everywhere except the one path that succeeds, which is the path that matters.

What it takes to use it

“You just need to POST /register/step2 with your desired username, email and password.” The write-up adds the conditions: the instance has registration disabled but “has its SMTP configured properly (you still need to do email confirmation)”, and the request needs a CSRF token. Since no registration form is served, there is no token on the page, but “the token from /login works just fine.”

What it is not

The impact is an account on an instance whose operator had closed registration. It is not account takeover, and it is not privilege escalation on accounts that already exist. NVD’s primary CVSS 3.1 metric puts it at 5.3 Medium, with a secondary CVSS 4.0 metric at 6.9, also Medium, both from the CNA, VulnCheck. The researcher describes the finding as less impactful than the account-takeover bug he published earlier.

What to do

The fix is meta.sr.ht 0.89.0. NVD’s references point at two commits and the 0.89.0 tag, and none of those was read here, so this piece does not describe the patch.

If you run an instance that has registration disabled, the write-up’s compromise check is worth an afternoon: look at the account list for users you did not create. Nothing collected says the flaw has been used in the wild.

Sources: the researcher’s write-up and NVD’s record for CVE-2026-121728.