
Herramienta de análisis de parches estáticos basada en Python para estudiar la causa raíz y la remediación de CVE-2021-41773 (Path Traversal en Apache HTTP Server) mediante la comparación del código fuente vulnerable de Apache HTTP Server 2.4.49 con la implementación parcheada de la 2.4.51.
Una herramienta de análisis estático de parches basada en Python para estudiar la causa raíz y la remediación de CVE-2021-41773 (Path Traversal en Apache HTTP Server) mediante la comparación del código fuente vulnerable de Apache HTTP Server 2.4.49 con la implementación parcheada de 2.4.51.
El proyecto realiza análisis semántico de código fuente en lugar de un simple diff basado en texto. Extrae información estructural de la función objetivo, compara ambas versiones, infiere cambios relevantes para la seguridad y genera informes de análisis profesionales.
Apache Source Code
│
▼
parser.py
│
▼
extractor.py
│
▼
comparator.py
│
▼
reasoning.py
│
▼
reports.py
cve-2021-41773-source-code-analysis
│
├── docker
│ ├── apache249
│ │ ├── Dockerfile # Construye el contenedor de Apache HTTP Server 2.4.49
│ │ └── docker-compose.yml # Inicia el contenedor de Apache vulnerable
│ │
│ └── apache251
│ ├── Dockerfile # Construye el contenedor de Apache HTTP Server 2.4.51
│ └── docker-compose.yml # Inicia el contenedor de Apache parcheado
│
├── labs # Almacena el código fuente de Apache descargado
│
├── references
│ └── resources.md # Material de referencia para la investigación de CVE
│
├── scripts
│ ├── patch_analysis
│ │ ├── __init__.py # Inicializa el paquete de análisis
│ │ ├── parser.py # Extrae las funciones C objetivo del código fuente de Apache
│ │ ├── extractor.py # Extrae variables, llamadas, condiciones y capacidades de seguridad
│ │ ├── comparator.py # Compara las estructuras de las funciones vulnerable y parcheada
│ │ ├── reasoning.py # Realiza el razonamiento de seguridad sobre los cambios detectados
│ │ ├── reports.py # Coordina la generación de informes
│ │ ├── markdown_report.py # Genera el informe de análisis en Markdown
│ │ ├── json_report.py # Genera el informe de análisis en JSON
│ │ └── html_report.py # Genera el informe de análisis en HTML
│ │
│ ├── analyze_patch.py # Punto de entrada principal para el análisis de parches
│ ├── verify_lab.py # Verifica la configuración del laboratorio Docker
│ └── debug.py # Muestra la salida de comparación sin procesar para depuración
│
├── analysis # Informes de análisis generados
│
├── setup.sh # Prepara automáticamente el laboratorio completo
│
├── LICENSE
└── README.md
Clona el repositorio
git clone https://github.com/KunalKhandelwal-dev/cve-2021-41773-source-code-analysis.git
Entra en el proyecto
cd cve-2021-41773-source-code-analysis
Ejecuta el script de configuración automatizada.
sudo bash setup.sh
El script de configuración realiza automáticamente las siguientes tareas:
Ejemplo de salida
[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
=========================================================
Ejecuta
cd scripts
sudo python3 verify_lab.py
Verificación exitosa
La herramienta de verificación comprueba:
Muévete al directorio de scripts.
cd scripts
Ejecuta
sudo python3 analyze_patch.py
Ejemplo de salida
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
Después de una ejecución exitosa se generan los siguientes informes:
analysis/
├── analysis.md
├── analysis.json
└── analysis.html
Load Apache Source
│
▼
Extract Target Function
│
▼
Extract Structural Information
│
▼
Compare Vulnerable vs Patched
│
▼
Security Reasoning
│
▼
Generate Reports
El motor de razonamiento identifica mejoras de seguridad como:
Este proyecto está destinado a:
Este proyecto se publica bajo la Licencia MIT.
Kunal Khandelwal
B.Tech Computer Science Engineering (Cyber Security)
Security Research | Application Security | Docker | Source Code Analysis