CVE-2026-7768CVE-2026-7768 是 fastify-accepts-serializer 组件中的高危拒绝服务漏洞。由于该组件在缓存基于 Accept 头的序列化结果时缺乏大小限制,未经身份认证的远程攻击者可通过发送大量不同但匹配的 Accept 头变体,导致缓存无限增长。这将耗尽 Node.js 堆内存并致使服务进程崩溃。
该漏洞源于 @fastify/accepts-serializer 组件在实现内容协商缓存机制时的设计缺陷。具体而言,该组件以 HTTP 请求的 Accept 头部作为键值,缓存序列化器的选择结果以提升性能。然而,开发者在实现时未对缓存的大小设置上限,也未引入适当的淘汰策略(如 LRU 算法)。攻击者可以利用这一缺陷,通过发送大量精心构造的 HTTP 请求,每个请求携带一个独特但在语义上仍能匹配有效序列化器的 Accept 头部(例如通过调整权重参数、添加无意义的空格或修改参数顺序)。由于缓存无界增长,Node.js 进程的堆内存将被迅速耗尽。当内存占用达到系统限制时,垃圾回收器无法释放足够的空间,最终导致进程因内存溢出(OOM)而崩溃,造成严重的拒绝服务。