Zurück zu den Updates
UpdatedAug 3, 2026

cve-2021-41773-source-code-analysis — Updated!

Ein auf Python basierendes Tool zur statischen Patch-Analyse, das die Ursache und Behebung von CVE-2021-41773 (Apache HTTP Server Path Traversal) untersucht, indem es den verwundbaren Quellcode von Apache HTTP Server 2.4.49 mit der gepatchten Implementierung von 2.4.51 vergleicht.

Teilen

Apache HTTP Server CVE-2021-41773 Quellcode-Analyse

Ein Python-basiertes statisches Patch-Analyse-Tool zur Untersuchung der Grundursache und Behebung von CVE-2021-41773 (Apache HTTP Server Path Traversal) durch den Vergleich des verwundbaren Quellcodes von Apache HTTP Server 2.4.49 mit der gepatchten Implementierung von 2.4.51.

Das Projekt führt eine semantische Quellcode-Analyse durch statt eines einfachen textbasierten Vergleichs. Es extrahiert strukturelle Informationen aus der Zielfunktion, vergleicht beide Versionen, leitet sicherheitsrelevante Änderungen ab und erstellt professionelle Analyseberichte.


Funktionen

  • Statische Quellcodeanalyse
  • Funktionsextraktion mittels Klammernabgleich
  • Struktureller Vergleich zwischen verwundbarer und gepatchter Version
  • Erkennung von Sicherheitsfunktionen
  • Patch-Reasoning-Engine
  • Markdown-Berichtserstellung
  • JSON-Berichtserstellung
  • HTML-Berichtserstellung
  • Automatisiertes Docker-Lab-Setup
  • Tool zur Umgebungsverifizierung

Projektarchitektur

Apache Source Code
        │
        ▼
 parser.py
        │
        ▼
 extractor.py
        │
        ▼
 comparator.py
        │
        ▼
 reasoning.py
        │
        ▼
 reports.py

Projektstruktur

cve-2021-41773-source-code-analysis
│
├── docker
│   ├── apache249
│   │   ├── Dockerfile              # Builds Apache HTTP Server 2.4.49 container
│   │   └── docker-compose.yml      # Starts vulnerable Apache container
│   │
│   └── apache251
│       ├── Dockerfile              # Builds Apache HTTP Server 2.4.51 container
│       └── docker-compose.yml      # Starts patched Apache container
│
├── labs                            # Stores downloaded Apache source code
│
├── references
│   └── resources.md                # Reference material for CVE research
│
├── scripts
│   ├── patch_analysis
│   │   ├── __init__.py             # Initializes the analysis package
│   │   ├── parser.py               # Extracts target C functions from Apache source
│   │   ├── extractor.py            # Extracts variables, calls, conditions and security capabilities
│   │   ├── comparator.py           # Compares vulnerable and patched function structures
│   │   ├── reasoning.py            # Performs security reasoning on detected changes
│   │   ├── reports.py              # Coordinates report generation
│   │   ├── markdown_report.py      # Generates Markdown analysis report
│   │   ├── json_report.py          # Generates JSON analysis report
│   │   └── html_report.py          # Generates HTML analysis report
│   │
│   ├── analyze_patch.py            # Main entry point for patch analysis
│   ├── verify_lab.py               # Verifies Docker lab configuration
│   └── debug.py                    # Displays raw comparison output for debugging
│
├── analysis                        # Generated analysis reports
│
├── setup.sh                        # Automatically prepares the complete lab
│
├── LICENSE
└── README.md

Anforderungen

  • Python 3.10+
  • Docker
  • Docker Compose
  • Bash
  • Linux (getestet auf Kali Linux)

Installation

Repository klonen

git clone https://github.com/KunalKhandelwal-dev/cve-2021-41773-source-code-analysis.git

In das Projektverzeichnis wechseln

cd cve-2021-41773-source-code-analysis

Setup

Führen Sie das automatisierte Setup-Skript aus.

sudo bash setup.sh

Das Setup-Skript führt automatisch die folgenden Aufgaben aus:

  • Prüft erforderliche Tools
  • Verifiziert die Docker-Installation
  • Lädt Apache HTTP Server 2.4.49 herunter
  • Lädt Apache HTTP Server 2.4.51 herunter
  • Entpackt beide Quellcode-Bäume
  • Erstellt Docker-Images
  • Startet Apache-Container
  • Erstellt die Analyseumgebung

Beispielausgabe

[INFO] Checking required tools...
[SUCCESS] Required tools found.

[INFO] Checking Docker...
[SUCCESS] Docker is running.

[INFO] Downloading Apache HTTP Server 2.4.49...
[SUCCESS] Apache 2.4.49 downloaded.

[INFO] Downloading Apache HTTP Server 2.4.51...
[SUCCESS] Apache 2.4.51 downloaded.

[INFO] Building Docker images...
[SUCCESS] Docker images built.

[INFO] Starting Apache containers...
[SUCCESS] Containers started.

=========================================================
[SUCCESS] Apache CVE Lab Setup Complete
=========================================================

Umgebung verifizieren

Führen Sie aus

cd scripts

sudo python3 verify_lab.py

Erfolgreiche Verifizierung

Bild

Das Verifizierungstool prüft:

  • Docker-Installation
  • Docker-Daemon
  • Laufende Container
  • Apache-Versionen
  • Apache-Quellcode
  • Zielfunktion
  • HTTP-Dienste
  • GDB-Verfügbarkeit

Patch-Analyse ausführen

Wechseln Sie in das Verzeichnis scripts.

cd scripts

Führen Sie aus

sudo python3 analyze_patch.py

Beispielausgabe

Bild

Beispiel für die Analyseausgabe

Apache HTTP Server Patch Analysis Report

Security Findings

[MEDIUM]
Percent decoding introduced or modified

[MEDIUM]
Hexadecimal validation introduced or modified

[HIGH]
Directory traversal handling improved

[HIGH]
Path normalization pipeline updated

[CRITICAL]
Traversal protection strengthened

Generierte Berichte

Nach erfolgreicher Ausführung werden die folgenden Berichte generiert:

analysis/
├── analysis.md
├── analysis.json
└── analysis.html

Analyse-Pipeline

Load Apache Source
        │
        ▼
Extract Target Function
        │
        ▼
Extract Structural Information
        │
        ▼
Compare Vulnerable vs Patched
        │
        ▼
Security Reasoning
        │
        ▼
Generate Reports

Erkannte Sicherheitsfunktionen

  • Prozentkodierung / -Dekodierung
  • Hexadezimale Validierung
  • Behandlung von Punktsegmenten
  • Normalisierung von Pfadtrennzeichen
  • URI-Normalisierungsflags
  • Schutz vor Verzeichnis-Traversal

Generierte Erkenntnisse

Die Reasoning-Engine identifiziert Sicherheitsverbesserungen wie:

  • Prozent-Dekodierung eingeführt
  • Hexadezimale Validierung eingeführt
  • Behandlung von Verzeichnis-Traversal verbessert
  • Pfadnormalisierung aktualisiert
  • Traversal-Schutz verstärkt

Bildungszweck

Dieses Projekt richtet sich an:

  • Sicherheitsforscher
  • Studierende, die die Ursachenanalyse von CVEs erlernen
  • Sichere Softwareentwicklung
  • Statische Quellcodeanalyse
  • Patch-Diff-Analyse
  • Schwachstellenforschung

Lizenz

Dieses Projekt wird unter der MIT-Lizenz veröffentlicht.

Autor

Kunal Khandelwal

B.Tech Informatik (Cybersicherheit)

Sicherheitsforschung | Anwendungssicherheit | Docker | Quellcodeanalyse

Kategorien