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-2026-Pending-Django-Summernote-RCE | Kitploit
Tools/GitHubGitHub/nicetop1027/cve-2026-pending-django-summernote-rce
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubnicetop1027/cve-2026-pending-django-summernote-rce

CVE-2026-Pending-Django-Summernote-RCE

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
View Repository
7 months agoNot yet reviewed

CVE-2026-XXXXX (Pending): django-summernote Arbitrary File Upload (RCE)

This repository contains a Proof of Concept (PoC) for a Conditional Remote Code Execution (RCE) vulnerability discovered in django-summernote version 0.8.20.0 (and earlier).

Vulnerability Details

  • Product: django-summernote
  • Version: <= 0.8.20.0
  • Type: Unrestricted File Upload (CWE-434)
  • Severity: HIGH (CVSS 7.2)
  • Impact: Remote Code Execution (RCE)

Description

The vulnerability exists in the lack of strict dependency enforcement in setup.py and the fallback logic in forms.py.

The django-summernote package treats the Pillow library (required for strict image validation) as an optional dependency. If Pillow is not installed on the server, the UploadForm gracefully downgrades the file input field from forms.ImageField to the generic forms.FileField.

Vulnerable Code (forms.py):

root@kitploit:~
try:
    from PIL import Image
    FIELD = forms.ImageField  # Validates image content
except ImportError:
    FIELD = forms.FileField   # Accepts ANY file type (Dangerous)

This behavior allows an attacker to upload arbitrary files (e.g., .php, .py, .sh, .html) instead of images, leading to Remote Code Execution (RCE) or XSS, as the views.py relies solely on form validation.

Reproduction Steps

  1. Install django-summernote without Pillow:

    root@kitploit:~
    pip install django-summernote
    pip uninstall Pillow  # Ensure Pillow is gone
    
  2. Run the PoC:

    root@kitploit:~
    python3 poc.py
    
  3. Expected Output:

    root@kitploit:~
    [+] Verified: Pillow is NOT installed. Vulnerable logic active.
    [*] Attempting to upload a Web Shell (.php)...
    
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    [!!!] VULNERABILITY SUCCESS: SHELL UPLOADED [!!!]
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    [+] Form Validation Passed for: exploit.php
    

Mitigation

Users should ensure Pillow is installed in their environment to enforce image validation:

root@kitploit:~
pip install Pillow

Maintainers should move Pillow to install_requires in setup.py or enforce ImageField usage hard dependency.

Download Tool