Account takeover via SSO plugins in NodeBB
Description
NodeBB Forum Software is powered by Node.js and supports either Redis, MongoDB, or a PostgreSQL database. Due to an unnecessarily strict conditional in the code handling the first step of the SSO process, the pre-existing logic that added (and later checked) a nonce was inadvertently rendered opt-in instead of opt-out. This re-exposed a vulnerability in that a specially crafted Man-in-the-Middle (MITM) attack could theoretically take over another user account during the single sign-on process. The issue has been fully patched in version 1.17.2.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
NodeBB SSO vulnerability allows MITM account takeover due to nonce check becoming opt-in; patched in v1.17.2.
Root
Cause The vulnerability stems from an unnecessarily strict conditional in the code handling the first step of the SSO process. This inadvertently made the nonce addition and validation logic opt-in instead of opt-out, effectively disabling a critical security check that was meant to prevent replay attacks [1][4].
Exploitation
An attacker with a Man-in-the-Middle (MITM) position could craft a valid SSO authorization code for their own account and then trick a victim into visiting a crafted URL (e.g., via CSRF) that associates the victim's account with the attacker's SSO provider. This process requires no user interaction beyond the victim being logged into NodeBB and visiting the malicious link [3].
Impact
Successful exploitation allows an attacker to take over a victim's NodeBB account, gaining full access to the victim's forum privileges, including administrative rights if the victim is an admin [3][4].
Mitigation
The issue has been fully patched in NodeBB version 1.17.2. Site maintainers are advised to upgrade immediately or cherry-pick the fix commit a2400f6 into their codebase [4].
AI Insight generated on May 21, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
nodebbnpm | < 1.17.2 | 1.17.2 |
Affected products
2- NodeBB/NodeBBv5Range: < 1.17.2
Patches
1a2400f6baff4fix: accidental unnecessarily strict conditional that effectively rendered SSO state checking opt-in instead of opt-out
1 file changed · +1 −1
src/routes/authentication.js+1 −1 modified@@ -104,7 +104,7 @@ Auth.reloadRoutes = async function (params) { prompt: strategy.prompt || undefined, }; - if (strategy.checkState) { + if (strategy.checkState !== false) { req.session.ssoState = req.csrfToken && req.csrfToken(); opts.state = req.session.ssoState; }
Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
6- github.com/advisories/GHSA-xmgg-fx9p-prq6ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2022-36076ghsaADVISORY
- blogs.opera.com/security/2022/03/bug-bounty-adventures-a-nodebb-0-dayghsaWEB
- blogs.opera.com/security/2022/03/bug-bounty-adventures-a-nodebb-0-day/mitrex_refsource_MISC
- github.com/NodeBB/NodeBB/commit/a2400f6baff44cb2996487bcd0cc6e2acc74b3d4ghsax_refsource_MISCWEB
- github.com/NodeBB/NodeBB/security/advisories/GHSA-xmgg-fx9p-prq6ghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.