naiba
36240f5888
fix(rpc): cap concurrent IO streams per user and per server
...
GHSA-jg62-j5h6-8mpq: the terminal and file-manager endpoints created unbounded
IO streams; an authenticated member could open thousands, each spawning
goroutines, a 1MiB buffer and an agent-side PTY, exhausting dashboard and agent
resources. CreateStream now enforces a per-user (20) and per-server (40) cap in
the existing ioStreamMutex critical section, using the stream map as the single
source of truth. Dashboard-internal streams (uid==0: NAT, server transfer, MCP
transfer) skip the per-user cap but still count per-server. Adds caps,
exemption, slot-release and no-leak regression tests.
2026-06-05 02:42:38 +00:00
..
2025-12-04 21:52:12 +08:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 15:14:41 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 15:14:41 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 05:51:32 +00:00
2026-05-31 08:16:55 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 15:14:41 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-26 03:59:50 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 05:48:50 +00:00
2026-05-31 05:48:50 +00:00
2026-06-05 01:08:00 +00:00
2025-03-19 21:52:16 +08:00
2026-06-05 02:42:38 +00:00
2026-05-25 10:17:34 +00:00
2026-05-30 15:56:44 +00:00
2026-05-25 10:17:34 +00:00
2026-05-30 15:56:44 +00:00
2026-05-17 10:24:19 +08:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 16:18:57 +00:00
2026-05-31 16:18:57 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 15:14:41 +00:00
2026-05-31 16:18:57 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 15:14:41 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-06-02 03:31:36 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 15:14:41 +00:00
2026-05-31 15:14:41 +00:00
2026-05-31 15:14:41 +00:00
2026-05-31 15:14:41 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 05:48:50 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 05:51:32 +00:00
2026-06-05 02:42:38 +00:00
2026-05-31 16:18:57 +00:00
2026-05-31 02:04:35 +00:00
2026-05-17 10:24:19 +08:00
2026-01-10 17:29:10 +08:00
2026-05-31 05:48:50 +00:00
2026-06-05 02:42:28 +00:00
2026-06-05 02:42:28 +00:00
2026-05-30 15:56:44 +00:00
2026-06-02 03:31:36 +00:00
2026-05-30 15:56:44 +00:00
2026-06-02 03:31:36 +00:00
2026-05-31 15:14:41 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 15:14:41 +00:00
2026-05-31 15:14:41 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 15:14:41 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-06-02 03:31:36 +00:00
2026-06-02 03:31:36 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-31 02:04:35 +00:00
2026-05-31 02:04:35 +00:00
2026-05-25 10:17:34 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-06-05 02:42:38 +00:00
2026-05-30 15:56:44 +00:00
2026-05-25 10:17:34 +00:00
2026-05-30 15:56:44 +00:00
2026-05-25 10:17:34 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00
2026-05-26 03:51:05 +00:00
2025-01-04 20:49:14 +08:00
2026-05-30 15:56:44 +00:00
2026-05-30 15:56:44 +00:00