Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
PR:N confirmed by commented-out auth decorator; I:H reflects co-resident Zip Slip enabling arbitrary filesystem writes in the same unpatched code path.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
4DescriptionCVE.org
A vulnerability has been found in Gerapy up to 0.9.13. The impacted element is an unknown function of the file gerapy/server/core/views.py of the component Project Upload Endpoint. Such manipulation leads to missing authentication. The attack may be launched remotely. The exploit has been disclosed to the public and may be used. The name of the patch is bd4891c60315f17611a3b7a651ffe0fba7cfe71e. Applying a patch is advised to resolve this issue.
AnalysisAI
Unauthenticated remote access to the project upload endpoint in Gerapy up to 0.9.13 is possible because the @permission_classes([IsAuthenticated]) decorator was commented out in gerapy/server/core/views.py, permitting any network-reachable attacker to submit arbitrary zip archives without credentials. Source code review of patch commit bd4891c6 (PR #319) reveals that the same unpatched endpoint also contained a Zip Slip (path traversal) flaw in the archive extraction logic, meaning the combined exposure allows unauthenticated arbitrary file writes to any path the Gerapy process can reach. A public proof-of-concept has been disclosed via GitHub issue #317; this CVE is not currently listed in the CISA KEV catalog.
Technical ContextAI
Gerapy is a Python-based distributed web spider management platform built on the Scrapy framework, providing a browser-accessible interface for creating, uploading, and scheduling spider projects. The vulnerable component is the project_upload view function in gerapy/server/core/views.py, where the Django REST Framework @permission_classes([IsAuthenticated]) decorator was commented out, constituting a textbook CWE-306 (Missing Authentication for Critical Function) defect. The CPE cpe:2.3:a:n/a:gerapy:*:*:*:*:*:*:*:* covers all versions through 0.9.13. Critically, the patch commit bd4891c6 simultaneously restores the authentication guard and adds Zip Slip mitigation: the old extraction code called zip_ref.extractall(PROJECTS_FOLDER) without validating member paths, while the fixed code uses os.path.realpath() to confirm each extracted entry remains within the intended projects directory. This confirms that unpatched versions expose both an authentication bypass and an uncontrolled archive extraction path traversal (CWE-22) in the same code path.
RemediationAI
Upgrade to a version of Gerapy that includes commit bd4891c60315f17611a3b7a651ffe0fba7cfe71e, available via PR #319 at https://github.com/Gerapy/Gerapy/pull/319. A specific tagged release version containing this fix was not independently confirmed - operators must verify their installed version incorporates this commit (e.g., via pip show gerapy and cross-referencing the installed package against the patched source). As an immediate compensating control, restrict network access to the Gerapy web interface using host-based firewall rules to allow only trusted IP ranges, or place the service behind a reverse proxy (e.g., nginx) with auth_basic or IP allowlisting - this prevents unauthenticated network access to the upload endpoint without modifying application code. If the project upload feature is not actively used, disabling or restricting access to the /project/upload route at the proxy layer eliminates the attack surface entirely. Binding Gerapy to localhost (127.0.0.1) rather than 0.0.0.0 is an effective network-level mitigation for installations not requiring remote access.
LibreNMS before 24.10.0 allows a remote attacker to execute arbitrary code via OS command injection involving AboutContr
Reachable assertion in Open5GS up to version 2.7.6 allows remote unauthenticated attackers to crash the Diameter CER han
A Command Injection issue in the payload build page in BYOB (Build Your Own Botnet) 2.0 allows attackers to execute arbi
Denial of service in Open5GS 2.7.6 and earlier allows network-adjacent attackers with low-privilege Diameter Gx peer acc
Denial of service in Open5GS HSS (Home Subscriber Server) versions 2.7.0 through 2.7.6 is triggered remotely by manipula
Remote command injection in Control Web Panel allows unauthenticated attackers to execute arbitrary OS commands as root
LINQPad before 5.52.01 Pro edition is vulnerable to Unsafe Deserialization in LINQPad.AutoRefManager::PopulateFromCache(
Remote code execution in dash-uploader (Python package for Plotly Dash) versions 0.1.0 through 0.7.0a2 allows unauthenti
Command injection in LiteLLM 1.18.10 lets attackers who can configure MCP (Model Context Protocol) servers supply arbitr
SQL injection in AzuraCast's backup restore flow (versions up to and including 0.23.7) lets an attacker achieve privileg
Arbitrary file read in Yu AI Code Mother v4.3 lets anonymous, remote attackers retrieve files outside the intended previ
Remote code execution in APScheduler (all versions through 3.10.x and 4.0.0a5) is achievable when applications deseriali
Same technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-45420
GHSA-2qxj-c4c6-p34f