Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2018-7600 — Step-by-step analysis and exploitation lab for Drupal CVE-2018-7600 remote code execution vulnerability, including debugging, exploit code, and mitigation patch review. | Kitploit
Tools/GitHubGitHub/raytran54/cve-2018-7600
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationLearning & EducationLabs & Practice
GitHubraytran54/cve-2018-7600

CVE-2018-7600

Step-by-step analysis and exploitation lab for Drupal CVE-2018-7600 remote code execution vulnerability, including debugging, exploit code, and mitigation patch review.

View Repository
32 years agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

TRAN CONG DANH - SVTT - Mentor: LUU VAN LAN - CVE-2018-7600 - Day Started: 26/06/2024.

Table of contents:

  1. CVE summary
  2. Prerequisites
  3. CVE Analyse
  4. Mitigation

CVE summary

  • An attacker could call a Drupal Form API Ajax Request containing the call_user_func auto do function
  • Drupal before 7.58, 8.x before 8.3.9, 8.4.x before 8.4.6, and 8.5.x before 8.5.1

Prerequisites

  • In this lab, I use:

    • Ubuntu 20.04( PHP 7.2, MariaDB )
    • The Drupal version I use in this lab is 8.3.8
    • Visual Studio Code for debugging
    • Kali 23.4 for running exploit Drupal

CVE Analyse

  • We find the keys that use call_user_func are #pre_render, #post_render, #access_callback, #submit, #lazy_builder, #validate image
  • The task now is to find which param the user submitted has a render, can change the key, and receive the #post_render key, to call it out.
image
  • When resizing the picture server call drupal API image
  • The &$array function included here is the array of default elements when sent, let's try debugging without code: image image
  • Suppose you modify the value of mail when uploading: image image
  • image

    • When calling the getValue($array, $parents) method, the process is as follows:

    $ref prohibits references to $array.

    First loop: $ref reference to $array['a'].

    Second of the loop: $ref reference to $array['a']['b'].

    Third of the loop: $ref reference to $array['a']['b']['c'].

    The end result, $ref will be referenced to the value 42.

    root@kitploit:~
    $array = [
        'a' => [
            'b' => [
                'c' => 42
            ]
        ]
    ];
    $parents = ['a', 'b', 'c'];
    
    • After receiving $form value from func getValue. $form will become an argument for the Render function

    image image image

    • The definition of call_user_func

    image

    • The result when I use file exploit:

    image

    Mitigation

    • Patch ** Drupal developers have published a patch, adding a RequestSanitizer class with a stripDangerousValues ​​method to remove all input elements of the array whose keys begin with “#”. This method cleans input in $_GET, $_POST, and $_COOKIES.

    ** Drupal 8.6.5 /core/lib/Drupal/Core/DrupalKernel.php image /core/lib/Drupal/Core/Security/RequestSanitizer.php image image ** The stripDangerousValues ​​function verifies all the input parameters one by one, the first elements of the input array have a value starting with “#” and the values ​​not whitelisted are removed.

    Download Tool