#79 findings 2+3 (HIGH): global cross-MXID rate limiting + fair pending-table admission #84
Labels
No labels
bug
duplicate
enhancement
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
dark/nether-voicebridge#84
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
From the #79 review. Partially addressed: validate_management now REQUIRES max_tenants_per_owner / max_tenants_per_guild / max_link_attempts when open_registration is on (commit
40135f6), closing the "knobs off = zero limiting" footgun and bounding a single MXID. Residual (not fixed): the remaining budgets are all keyed on the sender MXID, so a federated-MXID Sybil swarm gets fresh budget per identity and can still (a) fill the global 16-slot PENDING_LINK_CAP to freeze all honest onboarding, and (b) accumulate link-probe joins / DM invites without bound on the single shared process (memory/sync growth).Fix
Severity HIGH (DoS). Related: #77, and the process-per-tenant isolation item from #47.
Core fixed + shipped in v0.3.0-alpha.18 (deployed 2026-07-11). New
[limits] max_global_link_attempts(+global_link_window_secs, default 60s) — a single cross-MXID sliding window on link-probes + invite auto-joins, required when open_registration is on, so federated-MXID churn can't reset the budget. The per-owner cooldown/link-attempt maps are now swept to bound memory. Residual (per-homeserver-domain fair-pending sub-cap) tracked in #88.