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
web-server-audit_CVE-2026-42945 — Trigger-aware web server CVE audit for nginx and Apache. Goes beyond version matching by checking whether the vulnerable code path is actually reachable in your configuration. Classifies findings as Active / Latent / Unverified. Single-file Python 3.5+, no dependencies. | Kitploit
Tools/GitHubGitHub/sibersan/web-server-audit_cve-2026-42945
Vulnerability ScannersVulnerability AnalysisConfiguration AuditingWeb SecurityDevSecOpsMisconfiguration
GitHubsibersan/web-server-audit_cve-2026-42945

web-server-audit_CVE-2026-42945

Trigger-aware web server CVE audit for nginx and Apache. Goes beyond version matching by checking whether the vulnerable code path is actually reachable in your configuration. Classifies findings as Active / Latent / Unverified. Single-file Python 3.5+, no dependencies.

View Repository
43 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

web_server_audit

Don't ask if you're vulnerable. Ask if you're exploitable.

A single-file Python tool that audits nginx and Apache against known CVEs by checking both the installed version and whether the vulnerable code path is actually reachable through your configuration.

Why?

Most CVE scanners stop at version matching: "nginx 1.18.0 — CVE-2026-42945, HIGH severity, you're vulnerable." But many CVEs require a specific configuration pattern to be exploitable. A scanner that ignores configuration floods you with red alerts that don't reflect real risk — and worse, it can hide the latent risks that would become real if your config changed tomorrow.

web_server_audit answers two distinct questions per CVE:

  1. Is the installed version in the vulnerable range?
  2. Is the trigger pattern present in the live configuration?

Combining those yields three honest classifications:

ClassificationMeaning
🔴 Active exploitation riskVulnerable version and trigger present. Exploitable today.
🟡 Latent riskVulnerable version, no trigger. Becomes exploitable if config changes introduce the pattern.
⚪ UnverifiedConfig unreadable; status unknown.

Features

  • 🎯 Per-CVE trigger detection (not just version matching)
  • 🟢 Active vs latent risk separation in the executive summary
  • 🐧 Ubuntu Pro / ESM awareness — flags packages from outside ESM coverage
  • 🔬 ASLR check, service status, listening ports, recent SIGSEGV count
  • 🎨 Color-coded terminal output, JSON for automation
  • 📦 Single file, Python 3.5+, no third-party dependencies
  • 🔌 Trivially extensible — add a new CVE in ~10 lines

Quick start

root@kitploit:~
git clone https://github.com/YOUR_USERNAME/web-server-audit.git
cd web-server-audit
sudo python3 web_server_audit.py

Supported CVEs (nginx)

CVESeverityTrigger pattern
CVE-2026-42945 (Rift)HIGHrewrite + unnamed capture ($1,$2) + ? in replacement
CVE-2026-42946MEDIUMscgi_pass or uwsgi_pass in use
CVE-2026-40701MEDIUMssl_stapling on + resolver together
CVE-2026-42934LOWcharset/charset_types/source_charset directives

The Apache CVE list is currently empty but the structure is in place — see Extending below.

Additional checks

Beyond CVEs, the tool also reports:

  • ASLR state (/proc/sys/kernel/randomize_va_space) — full ASLR materially reduces RCE exploitability of memory bugs
  • OS version & EOL status — flags end-of-life or ESM-only distributions
  • Ubuntu Pro (ESM) subscription state for esm-infra and esm-apps
  • Service status — whether nginx/Apache is actually running, and on which ports
  • Package source — distinguishes ESM, PPA, and standard-repo installs (Ubuntu)
  • Worker crashes — counts SIGSEGV events from the last 30 days as an active-exploitation indicator

Requirements

  • Python 3.5+ (works with the Python 3.6 shipped on Ubuntu 18.04)
  • No third-party packages — standard library only
  • Uses nginx, apache2, systemctl, ss, journalctl when available; skips checks gracefully otherwise

Usage

root@kitploit:~
# Compact report (default — hides OK lines)
sudo python3 web_server_audit.py

# All findings including OK lines
sudo python3 web_server_audit.py --verbose

# No ANSI colors (good for pipes, logs, CI output)
sudo python3 web_server_audit.py --no-color

# Machine-readable JSON
sudo python3 web_server_audit.py --json

Exit codes

CodeMeaning
0No issues
1Warnings or non-CVE critical findings only
2At least one CVE is actively exploitable

Exit code 2 is a natural CI/CD failure signal.

Example output

root@kitploit:~
========================================================================
Web Server Audit - 2026-05-16T01:24:55
Host: web-prod-01
web_server_audit.py v1.0.0 - SiberSAN - MIT License
========================================================================

[system]
------------------------------------------------------------------------
  [OK] OK    ASLR fully enabled (randomize_va_space=2)
  [i] INFO  OS: Ubuntu 18.04.6 LTS
  [!] WARN  Ubuntu 18.04 is in ESM-only support

[nginx] version 1.18.0 (active)
------------------------------------------------------------------------
  [i] INFO  nginx listening on: 0.0.0.0:80, 0.0.0.0:443
  [i] INFO  CVE-2026-42945 (HIGH): version vulnerable but NOT triggered
           Trigger: rewrite + unnamed capture ($1,$2) + '?' in replacement
           Evidence: No rewrite directives in configuration
  [i] INFO  CVE-2026-42946 (MEDIUM): version vulnerable but NOT triggered
  [!] WARN  nginx installed from PPA (1.18.0-3ubuntu1+bionic1)

========================================================================
Real-risk summary
------------------------------------------------------------------------
ACTIVE EXPLOITATION RISK: none detected.

LATENT RISK - vulnerable version, no trigger in config (3):
  - [nginx] CVE-2026-42945 (HIGH)
  - [nginx] CVE-2026-42946 (MEDIUM)
  - [nginx] CVE-2026-42934 (LOW)
  These become exploitable if config changes introduce the trigger.
  Mitigation: config-change discipline + plan upgrade.

========================================================================
Findings: 0 critical, 2 warnings
========================================================================

Extending

Adding a new CVE takes two steps.

1. Write a trigger function that takes the full config text (nginx -T output) and returns (triggered: bool, evidence: str):

root@kitploit:~
def _trigger_my_cve(conf):
    hits = [l for l in conf.splitlines() if re.search(r'risky_directive', l)]
    if hits:
        return True, "Found: " + hits[0]
    return False, "Pattern not present"

2. Add the entry to NGINX_CVES (or APACHE_CVES):

root@kitploit:~
{
    "id": "CVE-XXXX-NNNNN",
    "name": "Descriptive name",
    "severity": "HIGH",
    "affected": ("1.10.0", "1.25.0"),
    "fixed_in": ["1.25.1"],
    "trigger_desc": "Human-readable trigger description",
    "trigger_fn": _trigger_my_cve,
},

That's it. The framework handles classification, output formatting, JSON, exit codes, and the executive summary automatically.

Limitations

  • No active exploitation testing. No PoC requests are sent. This is a pure configuration + version analysis tool.
  • The CVE database is embedded and manually curated; no online sync. Keeping the list current is the user's responsibility.
  • Trigger detectors are heuristic. Complex configurations with deeply nested includes or unusual quoting may produce false positives or negatives. Use --verbose to inspect details when in doubt.
  • Tested on Ubuntu 18.04, 20.04, 22.04, and 24.04. The tool will likely run on other Linux distributions, but package-source detection (ESM/PPA) is Ubuntu-specific.

Contributing

Pull requests, issues, new CVE detectors, and support for additional web servers (lighttpd, Caddy, HAProxy, etc.) are all welcome.

When proposing a new CVE detector, please include:

  • A link to the CVE record (NVD, vendor advisory, or upstream changelog)
  • A minimal config snippet that triggers the detector
  • A counter-example that should not trigger it

License

Released under the MIT License.

Copyright (c) 2026 SiberSAN

Download Tool