Backend security: socket.io 2.5.1, ws, koa, qs, linkify-it; bound socket buffer #20
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
backmeupplz/todorant!20
Loading…
Reference in a new issue
No description provided.
Delete branch "security/backend-deps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Security update for the public backend (backend.todorant.com, ws.todorant.com). Every runtime advisory in the socket/ws/koa/qs/linkify stack is now cleared in osv-scanner. The only ws advisory left is in jest's jsdom (dev-only; production installs with
--production).Changes (backend/)
/v2/wsrealtime sync) 7.5.10 → 7.5.13: CVE-2026-48779, memory exhaustion from tiny fragments.app.proxy = true) and GHSA-7gcc-r8m5-44qm.^6.14.1(a single 6.16.1): CVE-2022-24999 and the later qs DoS fixes, reached through koa-bodyparser → co-body.match/mailto:scans on every todo text. The 5.x CJS build keepsrequire('linkify-it')returning the factory. The#tagschema, URLs and mailto match exactly as before (checked with Latin and Cyrillic tags).src/sockets/io.ts. At 9e10, any client, before authorizing, could make the server buffer ~90 GB per message. engine.io's own default is 1 MB. 50 MB leaves plenty of room for v1 sync pushes. The 9e10 dates to the 2022 initial commit with no rationale, most likely set when engine.io 3.6 lowered its default.Testing
I replicated
backend.ymllocally against MongoDB 8.0 (what prod runs now) on Node 22, on bothmainand this branch:Real v1 client test (socket.io-client 2.5.0 against the built server):
authorizeover socket.io →authorized✅ on both⚠️ Deploy note
Easypanel builds
deploy/backend. That branch was promoted by.github/workflows/backend.ymlwithgh api … git/refs/heads/deploy/backend(GitHub API). Since the move to Forgejo, no workflow has run for this repo on Forgejo, and that step can't promote Forgejo's branch anyway. So merging this won't deploy on its own until the promotion is ported to Forgejo Actions, ordeploy/backendis fast-forwarded tomainon Forgejo.🤖 Generated with Claude Code
f60a7a278befd6a7abf1