Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2025-66628 — Detaillierte Offenlegung von CVE-2025-66628, die einen Integer-Überlauf im TIM parser von ImageMagick analysiert, einschließlich Grundursache, Ausnutzungsschritte, Auswirkungsbewertung und Behebungsanleitung für 32-Bit-Systeme. | Kitploit
Tools/GitHubGitHub/sumitshah00/cve-2025-66628
Statische AnalyseSchwachstellenanalyseCode-AnalyseExploitationBinäranalysePapers & ForschungLernen & Bildung
GitHubsumitshah00/cve-2025-66628

CVE-2025-66628

Detaillierte Offenlegung von CVE-2025-66628, die einen Integer-Überlauf im TIM parser von ImageMagick analysiert, einschließlich Grundursache, Ausnutzungsschritte, Auswirkungsbewertung und Behebungsanleitung für 32-Bit-Systeme.

Repository anzeigen
1vor 8 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2025-66628: Integer Overflow im ImageMagick TIM-Parser

AttributDetails
CVE-IDCVE-2025-66628
AnbieterImageMagick Studio LLC
ProduktImageMagick
Betroffene Versionen< 7.1.2-10
Behobene Version7.1.2-10
SchwachstellentypCWE-190 (Integer Overflow)
CVSS v3.1 Bewertung7.5 (Hoch)
CVSS-VektorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
ForscherSumit Shah

Zusammenfassung

Eine Integer-Überlauf-Schwachstelle existiert in der Funktion ReadTIMImage in coders/tim.c von ImageMagick. Bei der Verarbeitung von TIM-Bilddateien (PlayStation) auf 32-Bit-Systemen führt eine ungeprüfte Multiplikation benutzergesteuerter Breiten- und Höhenwerte zu einer Unterallokation von Speicher, was zu Out-of-Bounds-Lesevorgängen während der Pixelverarbeitung führt.


Technische Details

Betroffener Code

Der anfällige Code befindet sich in coders/tim.c:

root@kitploit:~
/* coders/tim.c - TIM Image Parser */

// Benutzergesteuerte Eingabe aus dem TIM-Dateiheader
width = ReadBlobLSBShort(image);   // 2 bytes (0-65535)
height = ReadBlobLSBShort(image);  // 2 bytes (0-65535)

// ANFÄLLIG: Integer-Überlauf auf 32-Bit-Systemen
image_size = 2 * width * height;  // No overflow check

// Speicher mit abgeschnittener Größe allokiert
pixels = (unsigned char *) AcquireQuantumMemory(image_size, sizeof(*pixels));

// Schleife verarbeitet VOLLE Abmessungen, liest über Puffer hinaus
for (y = 0; y < height; y++) {
    for (x = 0; x < width; x++) {
        pixel_index = (y * width + x) * 2;
        pixels[pixel_index] = ReadBlobByte(image);
        pixels[pixel_index + 1] = ReadBlobByte(image);
    }
}

Ursache

Auf 32-Bit-Architekturen ist size_t auf 32 Bit begrenzt mit dem Maximalwert UINT_MAX = 4,294,967,295.

Wenn Breite und Höhe auf die maximalen 16-Bit-Werte ohne Vorzeichen gesetzt werden:

root@kitploit:~
width = 65535 (0xFFFF)
height = 65535 (0xFFFF)

Erwartete Berechnung:
2 × 65535 × 65535 = 8,589,869,050 bytes (~8.5 GB)

Tatsächliches Ergebnis (32-Bit-Überlauf):
8,589,869,050 % 4,294,967,296 = 4,294,901,754
Ergebnis nach Abschneiden: Small allocated buffer

Der Überlauf führt dazu, dass der Speicher-Allokator einen drastisch kleineren Puffer als benötigt reserviert, während die Verarbeitungsschleife weiterhin über das gesamte 65535 × 65535 Pixelraster iteriert, was zu Out-of-Bounds-Lesevorgängen führt.

Ausnutzung

Schritt 1: Angreifer erstellt TIM-Datei mit Abmessungen, die Überlauf verursachen

root@kitploit:~
[Magic: 0x10]
[Type: 0x02]
[Width: 0xFFFF]   # 65535
[Height: 0xFFFF]  # 65535
[Pixel Data...]

Schritt 2: Opfer verarbeitet die bösartige Datei

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

Schritt 3: Out-of-Bounds-Lesevorgang tritt auf, was zu Folgendem führt:

  • Heap-Speicher-Offenlegung (in Ausgabebild durchgesickert oder durch Timing beobachtbar)
  • Segmentation Fault (Denial of Service)

Betroffene Plattformen

32-Bit-Systeme, bei denen size_t 32 Bit groß ist. 64-Bit-Systeme sind nicht betroffen, da die Integer-Breite ausreicht, um die berechnete Größe ohne Überlauf darzustellen.


Auswirkungen

Informationspreisgabe (Primär): Heap-Speicher des ImageMagick-Prozesses kann während des Out-of-Bounds-Zugriffs gelesen werden. Dieser Speicher kann enthalten:

  • Zuvor verarbeitete Bilddaten
  • Umgebungsvariablen
  • Dateipfade
  • Zwischengespeicherte Anmeldedaten (in Multi-Tenant-Umgebungen)

Die durchgesickerten Daten können in das konvertierte Ausgabebild eingebettet oder über Seitenkanalanalyse extrahiert werden.

Denial of Service (Sekundär): Das Lesen nicht zugeordneter Speicherbereiche löst SIGSEGV aus, was zur Beendigung des ImageMagick-Prozesses und zu Dienstunterbrechungen in automatisierten Bildverarbeitungspipelines führt.


Proof of Concept

Technische Details werden zu Validierungszwecken bereitgestellt. Es wird kein ausführbarer Exploit-Code verteilt.

Auslösebedingungen

  • ImageMagick Version < 7.1.2-10, kompiliert für 32-Bit-Architektur
  • Bösartig erstellte TIM-Datei mit Header-Bytes, die width=65535, height=65535 angeben
  • Verarbeitung über convert, magick oder einen ImageMagick-API-Aufruf

Erwartetes Verhalten (Anfällig)

root@kitploit:~
$ convert malicious.tim output.png
Segmentation fault (core dumped)

Oder erfolgreiche Konvertierung mit durchgesickerten Heap-Daten im Ausgabebild.

Erwartetes Verhalten (Behoben)

root@kitploit:~
$ convert malicious.tim output.png
convert: Memory allocation failed `malicious.tim' @ error/tim.c/ReadTIMImage/XXX.

Behebung

Für Administratoren

Aktualisieren Sie ImageMagick auf Version 7.1.2-10 oder höher:

root@kitploit:~
# Verify current version
convert --version

# Update using package manager
apt update && apt upgrade imagemagick      # Debian/Ubuntu
yum update imagemagick                     # RHEL/CentOS
brew upgrade imagemagick                   # macOS

Für Entwickler

Implementieren Sie eine Überlaufprüfung vor arithmetischen Operationen:

root@kitploit:~
// Insecure
image_size = 2 * width * height;

// Secure
if (height != 0 && width > (SIZE_MAX / 2) / height) {
    ThrowReaderException(ResourceLimitError, "MemoryAllocationFailed");
}
image_size = 2 * width * height;

Wenden Sie Eingabevalidierung und sinnvolle Grenzen für Dimensionswerte an, bevor Sie Berechnungen durchführen.


Referenzen

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

Entdeckungsmethodik

Diese Schwachstelle wurde mittels Variantenanalyse identifiziert. Nach der Offenlegung eines ähnlichen Integer-Überlaufs im BMP-Decoder von ImageMagick wurde eine systematische Überprüfung der Parser für Legacy-Formate durchgeführt. Pattern-Matching nach ungeprüften width * height-Berechnungen führte zur Identifizierung des gleichen Fehlers im TIM-Parser.

Decoder für Legacy-Bildformate (TIM, SGI, VIFF usw.) stellen aufgrund seltener Sicherheitsaudits und der Abhängigkeit von unsicherer C-Arithmetik Ziele mit hohem Wert dar.


Verantwortungsvolle Offenlegung

Diese Schwachstelle wurde den ImageMagick-Maintainern privat über GitHub Security Advisories gemeldet. Die öffentliche Offenlegung erfolgte erst nach Verfügbarkeit des Patches und Zuweisung der CVE. Diese Forschung wurde ethisch unter den Prinzipien verantwortungsvoller Offenlegung durchgeführt.

Entdecker

SUMIT SHAH

Forscher: SUMIT SHAH

  • LinkedIn: linkedin.com/in/sumit-shah-614625350
  • Instagram: @hacksagex
Tool herunterladen