Skip to content

extraParam 参数可以被绕过,导致服务器被单个简单请求占满资源 #421

@Kinsue

Description

@Kinsue

Bug 描述

在当前版本的代码逻辑中,如果识别到客户端不支持任何 WebP 或 AVIF 图片,系统会尝试返回原图并执行 ResizeItself 操作。
然而当前代码并未对该操作进行任何限制,攻击者可以构造带有极大 extraParam 参数的请求,从而持续占用服务器的 CPU 和内存资源,造成拒绝服务(DoS)问题。


复现步骤

  1. 构造特殊的 Accept 请求头,使其绕过 WebpMaxAvifMax 参数的限制。

  2. 发送如下请求:

    /example.png?width=9999999
    

    通过修改图片内容有如下测试结果:

    1. 内存占用超过11G, 系统自动中断程序

      Image
    2. 内存保持低占用,但CPU资源持续占用,无法终止或直到容器生存结束

      Image

测试环境:

  • OS: Debian GNU/Linux 13 (trixie) x86_64
  • Machine: Netcup RS 11 Ultra (6C12G)
  • version or branch: 0.14.0

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions