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-66628 — Analisi tecnica di CVE-2025-66628, un integer overflow nel parser TIM di ImageMagick che porta a letture fuori dai limiti, con causa principale, passaggi di sfruttamento e guida alla correzione. | Kitploit
Strumenti/GitHubGitHub/sumitshah00/cve-2025-66628
Analisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceExploitAnalisi di BinariPaper e RicercaApprendimento e Formazione
GitHubsumitshah00/cve-2025-66628

CVE-2025-66628

Analisi tecnica di CVE-2025-66628, un integer overflow nel parser TIM di ImageMagick che porta a letture fuori dai limiti, con causa principale, passaggi di sfruttamento e guida alla correzione.

Vedi Repository
129 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-66628: Overflow di intero nel parser TIM di ImageMagick

AttributoDettagli
CVE IDCVE-2025-66628
VendorImageMagick Studio LLC
ProdottoImageMagick
Versioni interessate< 7.1.2-10
Versione corretta7.1.2-10
Tipo di vulnerabilitàCWE-190 (Overflow di intero)
Punteggio CVSS v3.17.5 (Alto)
Vettore CVSSCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
RicercatoreSumit Shah

Sommario

Esiste una vulnerabilità di overflow di intero nella funzione ReadTIMImage all'interno di coders/tim.c di ImageMagick. Durante l'elaborazione di file immagine TIM (PlayStation) su sistemi a 32 bit, la moltiplicazione non controllata di valori di larghezza e altezza forniti dall'utente provoca un sotto-allocazione di memoria, portando a letture fuori dai limiti durante l'elaborazione dei pixel.


Dettagli tecnici

Codice vulnerabile

La logica vulnerabile risiede in coders/tim.c:

root@kitploit:~
/* coders/tim.c - Analizzatore immagini TIM */

// Input controllato dall'utente dall'intestazione del file TIM
larghezza = ReadBlobLSBShort(immagine);   // 2 byte (0-65535)
altezza = ReadBlobLSBShort(immagine);  // 2 byte (0-65535)

// VULNERABILE: Overflow di intero su sistemi a 32 bit
dimensione_immagine = 2 * larghezza * altezza;  // Nessun controllo di overflow

// Memoria allocata con dimensione troncata
pixel = (unsigned char *) AcquireQuantumMemory(dimensione_immagine, sizeof(*pixel));

// Il ciclo elabora le dimensioni COMPLETE, leggendo oltre il buffer
for (y = 0; y < altezza; y++) {
    for (x = 0; x < larghezza; x++) {
        indice_pixel = (y * larghezza + x) * 2;
        pixel[indice_pixel] = ReadBlobByte(immagine);
        pixel[indice_pixel + 1] = ReadBlobByte(immagine);
    }
}

Causa principale

Sulle architetture a 32 bit, size_t è limitato a 32 bit con valore massimo UINT_MAX = 4.294.967.295.

Quando larghezza e altezza sono entrambi impostati al massimo valore unsigned a 16 bit:

root@kitploit:~
larghezza = 65535 (0xFFFF)
altezza = 65535 (0xFFFF)

Calcolo atteso:
2 × 65535 × 65535 = 8.589.869.050 byte (~8,5 GB)

Risultato effettivo (avvolgimento a 32 bit):
8.589.869.050 % 4.294.967.296 = 4.294.901.754
Risultato dopo il troncamento: Buffer allocato ridotto

L'overflow fa sì che l'allocatore di memoria riservi un buffer drasticamente più piccolo del necessario, mentre il ciclo di elaborazione itera comunque sulla griglia completa di pixel 65535 × 65535, provocando letture fuori dai limiti.

Sfruttamento

Passaggio 1: L'attaccante crea un file TIM con dimensioni che causano l'overflow

root@kitploit:~
[Magic: 0x10]
[Tipo: 0x02]
[Larghezza: 0xFFFF]   # 65535
[Altezza: 0xFFFF]  # 65535
[Dati pixel...]

Passaggio 2: La vittima elabora il file malevolo

root@kitploit:~
convert malicious.tim output.png

Passaggio 3: Si verifica una lettura fuori dai limiti, che porta a:

  • Divulgazione di memoria heap (trafugata nell'immagine di output o osservabile tramite temporizzazione)
  • Errore di segmentazione (denial of service)

Piattaforme interessate

Sistemi a 32 bit dove size_t è a 32 bit. I sistemi a 64 bit non sono interessati a causa di una larghezza di intero sufficiente per rappresentare la dimensione calcolata senza overflow.


Impatto

Divulgazione di informazioni (Primaria): La memoria heap del processo ImageMagick può essere letta durante l'accesso fuori dai limiti. Questa memoria può contenere:

  • Dati di immagini precedentemente elaborate
  • Variabili d'ambiente
  • Percorsi di file
  • Credenziali memorizzate nella cache (in ambienti multi-tenant)

I dati trapelati possono essere incorporati nell'immagine di output convertita o estratti tramite analisi dei canali laterali.

Denial of Service (Secondaria): La lettura di regioni di memoria non mappate attiva SIGSEGV, causando la terminazione del processo ImageMagick e l'interruzione del servizio in pipeline di elaborazione automatica delle immagini.


Proof of Concept

I dettagli tecnici sono forniti a scopo di validazione. Non viene distribuito alcun codice di sfruttamento eseguibile.

Condizioni di attivazione

  • Versione di ImageMagick < 7.1.2-10 compilata per architettura a 32 bit
  • File TIM creato malevolmente con byte di intestazione che specificano larghezza=65535, altezza=65535
  • Elaborazione tramite convert, magick o qualsiasi chiamata API di ImageMagick

Comportamento atteso (Vulnerabile)

root@kitploit:~
$ convert malicious.tim output.png
Errore di segmentazione (core dump creato)

Oppure conversione riuscita con dati heap trapelati incorporati nell'output.

Comportamento atteso (Corretto)

root@kitploit:~
$ convert malicious.tim output.png
convert: Allocazione di memoria fallita `malicious.tim' @ error/tim.c/ReadTIMImage/XXX.

Rimedio

Per amministratori

Aggiornare ImageMagick alla versione 7.1.2-10 o successiva:

root@kitploit:~
# Verificare la versione corrente
convert --version

# Aggiornare usando il gestore pacchetti
apt update && apt upgrade imagemagick      # Debian/Ubuntu
yum update imagemagick                     # RHEL/CentOS
brew upgrade imagemagick                   # macOS

Per sviluppatori

Implementare controlli di overflow prima delle operazioni aritmetiche:

root@kitploit:~
// Non sicuro
dimensione_immagine = 2 * larghezza * altezza;

// Sicuro
if (altezza != 0 && larghezza > (SIZE_MAX / 2) / altezza) {
    ThrowReaderException(ResourceLimitError, "MemoryAllocationFailed");
}
dimensione_immagine = 2 * larghezza * altezza;

Applicare validazione dell'input e limiti di integrità sui valori delle dimensioni prima di eseguire i calcoli.


Riferimenti

  • Record CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-66628
  • Avviso GitHub: https://github.com/ImageMagick/ImageMagick/security/advisories/GHSA-6hjr-v6g4-3fm8
  • Repository ImageMagick: https://github.com/ImageMagick/ImageMagick
  • CWE-190: https://cwe.mitre.org/data/definitions/190.html

Metodologia di scoperta

Questa vulnerabilità è stata identificata utilizzando l'analisi delle varianti. A seguito della divulgazione di un simile overflow di intero nel decoder BMP di ImageMagick, è stata condotta una revisione sistematica dei parser di formati legacy. Il pattern matching per calcoli non controllati di larghezza * altezza ha portato all'identificazione dello stesso difetto nel parser TIM.

I decoder di formati immagine legacy (TIM, SGI, VIFF, ecc.) rappresentano obiettivi di alto valore a causa di audit di sicurezza poco frequenti e dell'uso di aritmetica C non sicura.


Divulgazione responsabile

Questa vulnerabilità è stata segnalata privatamente ai manutentori di ImageMagick tramite GitHub Security Advisories. La divulgazione pubblica è avvenuta solo dopo la disponibilità della patch e l'assegnazione del CVE. Questa ricerca è stata condotta eticamente secondo i principi della divulgazione responsabile.

Scopritore

SUMIT SHAH

Ricercatore: SUMIT SHAH

  • LinkedIn: linkedin.com/in/sumit-shah-614625350
  • Instagram: @hacksagex
Scarica lo strumento