A newly disclosed eight high-severity vulnerabilities in NodeBB, a popular Node.js-based forum platform, all discovered during a six-hour AI-driven whitebox penetration test.
The flaws affected default NodeBB instances prior to version 4.14.0 and included cross-site scripting (XSS), authentication bypasses, and unauthorized data exposure. NodeBB’s maintainers responded quickly, rolling out fixes in early July 2026.
NodeBB Patches Eight High-Severity Flaws
Federated profile XSS: A stored XSS flaw was found in helpers.common.js, where user profile picture URLs from ActivityPub federation were rendered into <meta> tags without escaping.
Attackers could stand up a rogue federation server returning a malicious icon.url, triggering JavaScript execution when a victim viewed the spoofed profile.
Federation Errors admin XSS: A second XSS bug lived in the admin-only Federation Errors log. By crafting a malformed ActivityPub Update message with mismatched actor/object origins, attackers could inject an unescaped payload into error IDs, executing code when an administrator viewed the log, potentially leading to full instance takeover.

Template injection via translation engine: Perhaps the most systemic issue: NodeBB’s two-stage rendering (Benchpress templating, then translation key interpretation) allowed attacker-controlled input containing [[...]] syntax to be reinterpreted as translation keys after escaping had already occurred.
This enabled JavaScript execution via crafted href attributes using javascript: URIs, exploitable through URLs, admin panels, or stored posts.
Admin panel authorization bypass: A logic flaw in middleware ordering meant custom homepage rewrites (a user-configurable feature) were processed after admin privilege checks.
Any regular user could set their homepage to /admin and gain access to the dashboard, exposing user CSV exports, error logs, and site configuration endpoints.

Private message impersonation: NodeBB’s ActivityPub signature verification only applied to POST requests GET requests, including the private message retrieval endpoint, skipped verification entirely. This let attackers spoof any keyId to read private messages across the platform.
Post hijacking via mass assignment: The topic creation API trusted a client-supplied pid field, allowing attackers to overwrite existing posts (including the default “Welcome” post) by supplying an existing post ID, enabling content poisoning.
Unauthenticated category disclosure: The /category/:cid/outbox endpoint, when queried with an Accept: application/activity+json header, returned all posts in a category, including private, admin-only ones with zero authorization checks.
Vote manipulation: A gap in signature verification for ActivityPub “Announce” messages allowed attackers to fabricate unlimited “Like” actions from arbitrary fake actors, artificially inflating post popularity at scale.
Mitigation
NodeBB addressed each flaw with targeted patches: proper escaping of federated data, middleware reordering, mass-assignment field stripping, and consistent signature verification across all ActivityPub endpoints.
The translation-injection issue required a deeper architectural fix, refactoring the templating system for auto-escaping, released in version 4.14.0.
Aikido noted a recurring pattern: NodeBB’s core web routes were well-hardened, but its ActivityPub federation layer, a secondary, less-scrutinized integration path, harbored the majority of these flaws.
The finding underscores a broader lesson for developers: alternative protocols and integration surfaces often receive less security review than primary application logic, making them prime targets for exploitation.
Cut SOC investigation blind spots and contain threats earlier to reduce response costs and business disruption with ANY.RUN.