Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-13374 — Kalrav AI Agent <= 2.3.3 - Téléchargement arbitraire de fichier non authentifié via l'action AJAX kalrav_upload_file | Kitploit
Outils/GitHubGitHub/d0n601/cve-2025-13374
Génération de PayloadsAnalyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications WebTests d'Intrusion
GitHubd0n601/cve-2025-13374

CVE-2025-13374

Kalrav AI Agent <= 2.3.3 - Téléchargement arbitraire de fichier non authentifié via l'action AJAX kalrav_upload_file

Voir le dépôt
2il y a 9 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Agent IA Kalrav <= 2.3.3 - Téléchargement arbitraire de fichiers non authentifié via l'action AJAX kalrav_upload_file

Le plugin WordPress Kalrav AI Agent (version 2.3.3 et antérieures) contient une vulnérabilité de téléchargement arbitraire de fichiers qui permet à des utilisateurs non authentifiés de télécharger des fichiers PHP malveillants sur le serveur, pouvant conduire à une exécution de code à distance.

TL;DR Exploits

Un POC CVE-2025-13374.py est fourni pour démontrer qu'un attaquant distant peut télécharger shell.php et exécuter du code à distance :

root@kitploit:~
python3 ./CVE-2025-13374.py http://techcorp.cc
[+] Target: http://techcorp.cc
[+] File uploaded successfully!
[+] Shell URL: http://techcorp.cc/wp-content/plugins/kalrav-ai-agent/uploads/1763247725-shell.php
[+] Command output:
www-data

Description technique

La vulnérabilité existe dans la fonction au niveau du point d'entrée . La fonctionnalité de téléchargement manque de validation appropriée des fichiers, de vérification du nonce et de contrôles de capacités. Cela permet à des utilisateurs non authentifiés de télécharger des fichiers arbitraires, y compris des fichiers PHP pouvant être exécutés sur le serveur.

kalrav_upload_file()
/wp-admin/admin-ajax.php

Analyse du chemin d'attaque

Source : Entrée utilisateur depuis $_FILES['file'] (ligne 978) Puits : move_uploaded_file($_FILES['file']['tmp_name'], $target_path) (ligne 982)

La vulnérabilité se produit car :

  1. Enregistrement de la route : Le point d'entrée de téléchargement est enregistré via le hook wp_ajax_nopriv_kalrav_upload_file (ligne 967), permettant un accès non authentifié.
  2. Absence d'authentification : Le préfixe wp_ajax_nopriv_ rend la fonction accessible aux utilisateurs non authentifiés.
  3. Absence de vérification du nonce : La fonction manque de protection CSRF via la vérification du nonce.
  4. Absence de contrôles de capacités : Aucune validation des permissions n'est effectuée avant d'autoriser les téléchargements.
  5. Traitement des entrées : Les données de fichier contrôlées par l'utilisateur depuis $_FILES['file'] sont directement traitées sans validation.
  6. Gestion des fichiers : Seule une assainissement basique du nom de fichier est appliqué avec basename() : time() . '-' . basename($_FILES['file']['name']) (ligne 979), ce qui empêche uniquement le parcours de répertoire mais ne valide pas les extensions de fichier.
  7. Stockage des fichiers : Les fichiers sont enregistrés dans wp-content/plugins/kalrav-ai-agent/uploads/.

Emplacement du code vulnérable

Fichier : kalrav-ai-agent.php Lignes : 969-996

root@kitploit:~
add_action('wp_ajax_kalrav_upload_file', 'kalrav_upload_file');
add_action('wp_ajax_nopriv_kalrav_upload_file', 'kalrav_upload_file');  

function kalrav_upload_file()
{
    // Path to your plugin uploads folder
    $upload_dir = plugin_dir_path(__FILE__) . 'uploads/';

    if (!file_exists($upload_dir)) {
        mkdir($upload_dir, 0755, true);
    }

    if (!empty($_FILES['file']['name'])) { 
        $file_name = time() . '-' . basename($_FILES['file']['name']);  
        $target_path = $upload_dir . $file_name;

        if (move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) { 
            wp_send_json_success([
                'message' => 'File uploaded successfully!',
                'file_path' => $target_path,
                'url' => plugins_url('uploads/' . $file_name, __FILE__)  
            ]);
        } else {
            wp_send_json_error(['message' => 'Failed to move uploaded file.']);
        }
    } else {
        wp_send_json_error(['message' => 'No file uploaded.']);
    }

    wp_die();
}
Télécharger l’outil