Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain authenticated Pentestify session
-
DeliveryStore arbitrary remote URL in finding images or client_logo field via API
-
ExploitTrigger PDF report export
-
ExecutionHeadless browser fetches attacker-specified URL from server network context
-
ImpactObserve or receive SSRF-induced response from internal target
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a valid authenticated Pentestify account (CVSS PR:L confirmed). The SSRF is triggered specifically during PDF report generation: the vulnerability activates when the backend headless browser renders a report whose finding images field or report client_logo field contains an attacker-supplied remote URL. Storing such a URL requires the ability to create or edit findings or report metadata, which is standard functionality available to any authenticated user - no administrative privilege is needed. Unauthenticated external parties cannot trigger the SSRF without valid credentials. The impact scope is bounded by the network egress context of the Pentestify server process. The CVSS vector confirms no user interaction is required beyond the authenticated user's own actions (UI:N), and the attack has no special environmental or timing requirements (AC:L, AT:N). |
| Impact | The CVSS 4.0 score of 5.3 Medium accurately reflects moderate but realistic risk. The attack vector is Network (AV:N) with low complexity (AC:L) and no specific attack requirements (AT:N), but exploitation is gated behind authenticated access (PR:L), meaningfully constraining the attacker pool to users who already hold valid Pentestify credentials. The subsequent-system impact metrics SC:L/SI:L indicate the SSRF can reach infrastructure beyond the application boundary - the primary danger is internal service probing, cloud metadata endpoint access (e.g., AWS IMDSv1 at 169.254.169.254), or pivoting to internal APIs that trust the server's IP. EPSS data was not provided; however, given the niche deployment footprint and the authentication prerequisite, opportunistic mass exploitation is unlikely. The vulnerability is not listed in CISA KEV and no public POC has been identified at time of analysis. Risk is highest in cloud-hosted deployments where the Pentestify server has unfiltered egress to internal metadata services or private network ranges. The authentication requirement is the primary limiting factor reducing real-world exploitability below what the network-reachable SSRF class would otherwise suggest. |
| Exploit ScenarioDerived | An authenticated Pentestify user edits a pentest finding and sets an image URL to an internal target such as http://169.254.169.254/latest/meta-data/iam/security-credentials/ (AWS IMDSv1). When the PDF report is exported, the headless browser fetches that URL from the server's egress network context, and the response - potentially containing cloud IAM credentials - is embedded or observable via side-channel in the rendered output. The attacker can iteratively probe internal IP ranges through repeated PDF exports to enumerate accessible services. No public POC has been identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 31, 2026
Server-Side Request Forgery in Pentestify's PDF export pipeline allows authenticated users to induce the server-side headless browser to issue outbound HTTP GET requests to arbitrary attacker-specified destinations by storing remote URLs in the finding images field or the report client_logo field. All Pentestify installations prior to version 1.1.0 are affected (CPE: cpe:2.3:a:ccyl13:pentestify). No active exploitation has been confirmed (not in CISA KEV, no public POC identified), but the vulnerability enables internal network reconnaissance and cloud metadata endpoint access from the Pentestify server's network context, posing meaningful risk in cloud-hosted or internally-networked deployments.
RemediationAI
Upgrade Pentestify to version 1.1.1 or later, which enforces a strict data-URI allowlist for all image fields and sanitizes previously stored values on database import. The patched release is available at https://github.com/ccyl13/Pentestify/releases/tag/v1.1.1, with the underlying fix commit at https://github.com/ccyl13/Pentestify/commit/a058a22b42c6311895622645265df79a60265b1d. If an immediate upgrade is not possible, restrict the Pentestify server's outbound egress via firewall or network policy to block HTTP/HTTPS requests to RFC-1918 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) and cloud instance metadata endpoints (169.254.169.254, 100.100.100.200); note this reduces but does not eliminate SSRF risk against external attacker-controlled targets. Additionally, limit Pentestify account creation to trusted personnel only, reducing the pool of users who can trigger the vulnerable PDF export path. Operators who have imported external .db files into pre-1.1.0 instances should assume those databases may contain stored malicious URLs and should upgrade immediately to trigger the sanitization logic introduced in the import path.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Pentestify (CPE: cpe:2.3:a:ccyl13:pentestify:*:*:*:*:*:*:*:*) is a self-hosted pentest report management application with a Python/FastAPI backend. CWE-918 (Server-Side Request Forgery) manifests in the PDF export workflow: the backend spawns a headless browser to render report HTML, and that renderer fetches any URLs referenced in the findings images field or the report client_logo field without validating whether the URL is a safe local data URI. An authenticated user can store an arbitrary remote URL (e.g., http://169.254.169.254/latest/meta-data/) in these fields via the standard API. The patch in v1.1.0 introduces a strict allowlist regex in schemas.py (_DATA_IMAGE_RE) that restricts accepted values exclusively to base64-encoded data:image/... URIs, rejecting all remote URLs at ingestion time. Additionally, the database import path was hardened via a _sanitize_json_column helper that retroactively cleans client_logo and images columns in imported .db files. The frontend also received escapeHTML() wrapping on image src attributes, addressing a co-resident XSS exposure.
Know when Pentestify gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
Network-triggered SSRF requires authenticated access (PR:L); S:C and C:L/I:L because the server issues requests to arbitrary internal or external hosts outside its own security domain.
Primary rating from Vendor (Secur0).
CVSS VectorVendor: Secur0
DescriptionCVE.org
Server-Side Request Forgery in the PDF export component in maalfer Pentestify before 1.1.0 allows authenticated users to cause outbound HTTP GET requests from the server to arbitrary attacker-chosen destinations via unvalidated URLs stored in the finding images field or the report client_logo field, which the server-side headless browser fetches while rendering the report.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
More in Pentestify
View allStored cross-site scripting in maalfer Pentestify before 1.1.0 allows an authenticated attacker to inject arbitrary Java
Stored cross-site scripting in the Markdown renderer of maalfer Pentestify before v2.3.2 allows authenticated users to i
Stored XSS in Pentestify's user management component (all versions before 1.1.1) enables an authenticated attacker to ex
Stored cross-site scripting in Pentestify's finding renderer allows any authenticated user with finding-creation privile
CSS sanitizer bypass in maalfer Pentestify 1.2.0-2.3.2 allows an authenticated low-privilege user to inject CSS that vic
EUVD-2026-51545
GHSA-pj83-6473-35pq
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB