Skip to main content

Pentestify CVE-2026-13150

| EUVDEUVD-2026-38735 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-06-24 4daa8cea-433a-44bd-9456-53b127fc289a GHSA-jmg8-x6hq-972w
6.9
CVSS 4.0 · Vendor: 4daa8cea-433a-44bd-9456-53b127fc289a
Share

Severity by source

Vendor (4daa8cea-433a-44bd-9456-53b127fc289a) PRIMARY
6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N/E:X/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
vuln.today AI
5.8 MEDIUM

Host header SSRF is network-exploitable with no auth per CVSS 4.0 PR:N; scope changes as server contacts external systems; only low confidentiality impact on subsequent systems, no integrity or availability effect.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N

Primary rating from Vendor (4daa8cea-433a-44bd-9456-53b127fc289a).

CVSS VectorVendor: 4daa8cea-433a-44bd-9456-53b127fc289a

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
X

Lifecycle Timeline

3
Patch available
Jun 24, 2026 - 12:16 EUVD
Source Code Evidence Fetched
Jun 24, 2026 - 11:31 vuln.today
Analysis Generated
Jun 24, 2026 - 11:31 vuln.today

DescriptionCVE.org

Server-Side Request Forgery (SSRF) (CWE-918) in the PDF generation endpoint GET /api/reports/{id}/pdf (backend/main.py) in ccyl13 Pentestify 1.0.0 and lower allows remote attackers to make the server issue requests to arbitrary internal or external URLs, including cloud metadata services, and return the rendered content in the resulting PDF via a crafted Host header, because the target URL is built from request.base_url without validation.

AnalysisAI

Server-Side Request Forgery in Pentestify 1.0.0's PDF generation endpoint enables remote attackers (PR:N per CVSS 4.0 vector) to coerce the server into issuing outbound HTTP requests to arbitrary internal or external targets, including cloud metadata services such as the AWS Instance Metadata Service at 169.254.169.254, by supplying a crafted HTTP Host header. The rendered PDF is returned to the caller, potentially leaking internal service responses or IAM role credentials. No public exploit code has been identified and no CISA KEV listing exists at time of analysis; the vulnerability is patched in version 1.1.0.

Technical ContextAI

Pentestify is a Python-based penetration testing report management application developed by ccyl13. The vulnerable code path is in backend/main.py at the GET /api/reports/{id}/pdf endpoint, where the application constructs the PDF render target URL using Flask/FastAPI's request.base_url - a value derived directly from the HTTP Host header - without any validation or allowlisting. A PDF rendering library (likely WeasyPrint or a headless browser) then fetches resources relative to this attacker-controlled base URL, causing the server to make outbound requests to arbitrary targets. CWE-918 (Server-Side Request Forgery) precisely describes this class of flaw: untrusted user-controlled input (the Host header) is used to construct a URL that the server fetches on behalf of the user. The v1.1.0 fix addresses a related attack surface by adding Pydantic field validators in schemas.py that restrict client_logo and images fields to base64 data URIs via a strict regex (_DATA_IMAGE_RE), preventing remote URL embedding in PDF-rendered HTML content. The frontend also gained HTML escaping for image src attributes in js/app.js. No CPE string is provided in the source data.

RemediationAI

Upgrade to Pentestify 1.1.0, which introduces Pydantic field validators in schemas.py enforcing that client_logo and images fields accept only base64 data URIs (matching the pattern data:image/<type>;base64,<data>), preventing remote URL embedding during PDF rendering. The patch commit is at https://github.com/ccyl13/Pentestify/commit/a058a22b42c6311895622645265df79a60265b1d. If immediate upgrade is not feasible, restrict network access to the /api/reports/{id}/pdf endpoint via a reverse proxy or WAF configured to reject requests with non-canonical Host header values. Additionally, apply egress firewall rules on the application server to block outbound connections to cloud metadata IP ranges (169.254.169.254 for AWS IMDS, 100.100.100.200 for Alibaba Cloud IMDS) - note this does not prevent SSRF against other internal network services and has no side effects on external PDF rendering if data URIs are used exclusively. Validating the Host header against an explicit allowlist at the application layer is the preferred long-term control.

Share

CVE-2026-13150 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy