
A scanner and testter of the CVE-2025-11001 of 7-zip
A stunning, interactive web application that demonstrates and helps detect the critical CVE-2023-52169 symlink traversal vulnerability in 7-Zip archives.
../, ..\\)/, C:\\)Clone the repository
git clone <repository-url>
cd Se7enSlip
Install dependencies
npm install
Start the development server
npm start
Open your browser
Navigate to http://localhost:3000
# Development with auto-reload
npm run dev
# Create a test vulnerable ZIP file
npm run create-test-zip
# Production build
npm run build
The vulnerability allows attackers to craft malicious ZIP archives that, when extracted by vulnerable 7-Zip versions, can write files outside the intended extraction directory. This is achieved through:
../ sequences to escape extraction folderβββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
β Malicious ZIP βββββΆβ Vulnerable 7-ZipβββββΆβ System Compromiseβ
β β β < v23.01 β β β
β β’ ../../../etc/ β β β β β’ File overwriteβ
β β’ /tmp/evil.sh β β Fails to validateβ β β’ Code executionβ
β β’ Symlinks β β extraction pathsβ β β’ Privilege esc.β
βββββββββββββββββββ βββββββββββββββββββ βββββββββββββββββββ
POST /api/scanUpload and scan a ZIP file for vulnerabilities.
Request: Multipart form data with zipfile field
Response:
{
"filename": "test.zip",
"totalEntries": 10,
"suspicious": [...],
"riskLevel": "HIGH",
"recommendations": [...],
"metadata": {
"totalSize": 12345,
"suspiciousPatterns": {...}
}
}
GET /api/vulnerability-infoRetrieve detailed information about CVE-2023-52169.
Response:
{
"cve": "CVE-2023-52169",
"cvssScore": 7.8,
"downloadUrl": "https://www.7-zip.org/download.html",
"references": [...]
}
POST /api/create-test-zipGenerate a test ZIP file containing various vulnerability patterns.
Response: ZIP file download with malicious entries for testing
public/css/
βββ styles.css # Main stylesheet with CSS custom properties
βββ animations/ # Animation keyframes and transitions
βββ components/ # Component-specific styles
βββ responsive/ # Media queries and responsive design
:root {
--primary: #00ff88; /* Neon green */
--secondary: #ff4757; /* Danger red */
--accent: #3742fa; /* Electric blue */
--bg-primary: #0a0a0a; /* Deep black */
--text-primary: #ffffff; /* Pure white */
}
PORT=3000 # Server port
NODE_ENV=production # Environment mode
UPLOAD_LIMIT=52428800 # File size limit (50MB)
RATE_LIMIT_WINDOW=900000 # Rate limiting window (15min)
RATE_LIMIT_MAX=50 # Max requests per window
The application includes multiple security layers:
// Content Security Policy
helmet({
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self'"],
styleSrc: ["'self'", "'unsafe-inline'"],
// ... additional directives
}
}
})
# Create a test ZIP with vulnerabilities
npm run create-test-zip
# The generated file will contain:
# - Path traversal entries (../)
# - Absolute paths (/tmp/, C:\)
# - Symlink entries
# - Long path names
# - Executable files
NODE_ENV=productionFROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
version: '3.8'
services:
se7enslip:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
volumes:
- ./uploads:/app/uploads