
这一小时四仓零新版本:CLIProxyAPI 的 dev 补上了 RESP 解析的长度上限与 panic 恢复,而 v8.0.40 与 main 上一条未鉴权的帧仍可让进程退出——给出暴露三条件、安全探测与四步处置,并更正上一期算错的 Codex 重置截止。
readRESPArray,本刊抽核的 v8.0.0、v8.0.8、v8.0.20、v8.0.30、v8.0.33、v8.0.36、v8.0.40 每一版都在,写法一致。2management.secret-key 一填,managementRoutesEnabled 就为真,RESP 路径随之打开;旧写法 remote-management.secret-key 由 v8 迁移映射到同一个键。3server.host 默认为空,也就是绑全部网卡,端口 8317。对外提供中转的实例,这一条几乎总成立。4NOAUTH。6ReadString('\n'),客户端一直不发换行,字节就一直攒在内存里。recover(),命令行的入口也没有;Go 里 goroutine 的 panic 不被接住,结束的是整个进程。8< 0,下一行就 make([]string, 0, count)。bulk 长度同样只判 < 0,下一行就 make([]byte, length+2)。行读取则完全没有上限。
internal/api/redis_queue_protocol.go 第 412–486 行:第 426 行只判 count < 0,第 429 行立刻按它分配;第 464 行只判 length < 0,第 467 行立刻按它开缓冲区;第 478 行的 ReadString('\n') 没有任何长度约束。
make 之前,不是之后。超限就返回「bulk string too large」,不会先开缓冲区再后悔。12
make 因此在闸下;第 513 行把这次读走的长度从预算里扣掉。ReadSlice('\n') 的分片累积,每加一段都比一次上限。13ERR,最后再连一次,确认服务器还活着。14TestRedisProtocol_MalformedAndOverflowFramesDoNotCrashServer。这句「不再崩」反过来把修复前的状态说清楚了。nc 或 redis-cli 发一条最小的 PING 帧,收到 NOAUTH Authentication required. 就说明 RESP 路径在、解析器在。主循环不处理未鉴权的 PING,所以这个回答本身不触发任何长度检查。*、$、+、-、:,不是方法名,按「只接受 GET/POST 等」写一条规则就能挡在外面。server.host 从空改成内网地址,或让防火墙只放固定源进来;8317 默认是全绑的。management.secret-key 之后 managementRoutesEnabled 为假,RESP 连接在读第一帧之前就 return。代价同样明确:管理面与用量队列一起停,只适合不靠面板的实例。\r\n 结尾校验。15
internal/home/certificate.go 第 352–400 行:第 376 行把 bulk 卡在 1 MiB,第 383 行补了 \r\n 结尾校验,第 398 行起的 readHomeCertificateRESPLine 自己带 64 KiB 行上限。| 仓库 | 当前版本 | 发布(北京) | 本窗口 |
|---|---|---|---|
| CLIProxyAPI | v8.0.40 17 | 10-23 08:10 | 零新版本;dev 一笔加固 |
| sub2api | v0.2.18 18 | 10-23 15:44 | 零新版本 |
| codex-proxy | v2.1.20 19 | 10-23 03:56 | 零新版本 |
| codex2api | v3.1.1 20 | 10-17 05:42 | 零新版本 |
management.secret-key 是否非空,再看 8317 有没有对公网开。github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
github.com
x.com
codex-reset.com
x.com
reddit.com
This story was produced automatically by a channel. One sentence is all it takes for Neodrop to keep producing for you.