POC详情: a1f213ad37204fb3b941c1948e736a28d2efe8b5

来源
关联漏洞
标题: Nuxt 安全漏洞 (CVE-2025-27415)
描述:Nuxt是Nuxt开源的一个免费的开源框架。 Nuxt 3.16.0之前版本存在安全漏洞,该漏洞源于通过向CDN后的服务器发送特制HTTP请求,可能在某些情况下毒化CDN缓存,严重影响站点的可用性。
描述
Nuxt3 Acceptance of Extraneous Untrusted Data With Trusted Data vulnerability
介绍
# CVE-2025-27415 PoC #
---
## Nuxt3 cache poisoning ##

nuxt3 >=3.0.0 <3.16.0 에서 발생한 cache poisoning 취약점 환경 세팅을 위한 레포지토리

---
## 취약점 요약 ##

nuxt 서버 앞에 CDN이 있을 때 CDN에서 URL 쿼리를 제외한 경로만 캐시키로 저장할 때 ``/?/_payload.json``에 대한 요청이 ``/``까지만 캐시키로 저장되어서
다른 사용자가 ``/``에 대해 요청을 보내면 정상 페이지가 아닌 ``_payload.json``에 대한 응답이 캐시에서 반환되는 취약점

공격자가 캐시가 사라지는 주기마다 ``/?/_payload.json``에 요청을 보내면 다른 사용자가 정상적인 페이지를 반환받을 수 없게 되는 DoS 취약점이 유발될 수 있다.

#### 자세한 설명 및 분석 ####

<https://preo123.tistory.com/19>

---
## SetUp ##

```bash
git clone https://github.com/jiseoung/CVE-2025-27415-PoC.git
cd CVE-2025-27415-PoC
docker-compose up --build
```
---
## 페이지 설명 ##

* '/' : cache poisoning을 유도하기 위한 페이지
  실제로 ``http://localhost/?/_payload.json``으로 요청을 보내 '/' 경로에 대한 캐시를 생성하면 ``http://localhost/``로 접근했을 때 '/' 페이지에 대한 응답이 반환되지 않고 캐시에 저장된 ``_payload.json``의 내용이 json으로 반환된다.

* '/ex' : cache poisoning 공격을 자동으로 수행해주는 페이지
  
  * Target Origin : cache poisoning 공격을 수행할 경로
    
    이 환경에서는 호스트에 nginx 컨테이너인 nuxt-nginx를 써야 한다. 왜냐하면 공격 자동화 서버를 다른 컨테이너에서 Flask로 구축했기 때문에 localhost로 보내면 해당 컨테이너의 localhost로 인식한다.
    
  * Cache Interval : 요청을 보낼 주기(초). CDN의 캐시가 사라지는 주기보다 약간 짧게 설정한다.
    
    이 환경에서는 60초동안 요청을 캐시에 저장한다.
文件快照

[4.0K] /data/pocs/a1f213ad37204fb3b941c1948e736a28d2efe8b5 ├── [ 828] docker-compose.yml ├── [4.0K] exploit │   ├── [2.4K] cache_poisoning.py │   └── [ 154] Dockerfile ├── [4.0K] nuxt-app │   ├── [ 57] app.vue │   ├── [ 119] Dockerfile │   ├── [ 213] nuxt.config.ts │   ├── [ 355] package.json │   ├── [4.0K] pages │   │   ├── [1.4K] ex.vue │   │   └── [ 168] index.vue │   ├── [4.0K] public │   │   ├── [4.2K] favicon.ico │   │   └── [ 24] robots.txt │   ├── [ 822] README.md │   ├── [4.0K] server │   │   └── [ 49] tsconfig.json │   └── [ 94] tsconfig.json ├── [4.0K] nuxt-nginx │   └── [ 763] nginx.conf └── [1.9K] README.md 6 directories, 16 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。