Skip to main content

Pentestify EUVDEUVD-2026-57930

| CVE-2026-19716 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-08-13 Secur0 GHSA-2rhm-fmxx-8mf9
5.1
CVSS 4.0 · Vendor: Secur0
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Attacker registers account with HTML-encoded quote in username
  2. Delivery
    Malicious payload stored in Pentestify database
  3. Exploit
    Victim authenticated user opens user management page
  4. Install
    Browser renders delete button with encoded payload in onclick attribute
  5. C2
    Victim clicks delete button for attacker's account
  6. Execute
    Browser HTML-decodes ' before JS engine parses handler
  7. Impact
    Injected JavaScript executes in victim's authenticated browser session

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires two authenticated users: the attacker must hold a valid Pentestify account with permission to register a username (the injection point), and the victim must be an authenticated user who navigates to the user management interface and clicks the delete button specifically for the attacker's account. The attack does not trigger passively - there is no drive-by or page-load execution path; the victim must perform an explicit UI interaction. The payload must survive the escapeHTML() filter by using HTML entity encoding (e.g., encoded quotes) rather than raw metacharacters, so only inputs exploiting the HTML-attribute-to-JS-context decoding gap are effective. Exploitation is limited to Pentestify versions before 1.1.1; the 1.1.1 backend allowlist regex (^[A-Za-z0-9_.\-]{3,32}$) would reject any username containing quotes or other injection metacharacters at registration time, blocking the attack vector entirely.

Impact

The CVSS 4.0 score of 5.1 (Medium) accurately reflects the constrained attack path: PR:L establishes that a valid authenticated account is required to plant the payload, and UI:P means the victim must actively click the delete button for the attacker's specific account - there is no passive or drive-by trigger. Even a mid-sized municipal IT team in tczew deploying Pentestify as an internal tooling platform should treat this as a moderate-priority upgrade rather than an emergency, given the authenticated prerequisite limits opportunistic mass exploitation. No EPSS data was supplied, and the vulnerability does not appear in the CISA KEV catalog, so exploitation probability is inferred rather than confirmed. The real-world risk is further bounded by Pentestify's niche deployment as a specialized pentesting tool - not general enterprise infrastructure. The CVSS 4.0 vector omits confidentiality impact entirely (VC:N/SC:N), which may understate the realistic blast radius of stored XSS (session token theft is a standard post-exploitation technique), though this assessment aligns with the vendor's own scoring and cannot be independently escalated without additional exploit evidence.

Exploit ScenarioDerived

An attacker with a valid low-privilege Pentestify account registers a username containing an HTML-encoded single quote - for example, test');alert(document.cookie);// - which passes the escapeHTML() filter and is stored in the backend database. When an administrator navigates to the user management page, Pentestify renders the delete button for that account with the encoded payload in the onclick attribute; the browser HTML-decodes ' to a literal quote before the JavaScript engine processes the handler, breaking the string literal and executing the injected code. The payload fires the moment the administrator clicks the delete button for the attacker's account, potentially exfiltrating session tokens or performing privileged actions on the victim's behalf.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 13, 2026

Stored XSS in Pentestify's user management component (all versions before 1.1.1) enables an authenticated attacker to execute arbitrary JavaScript in another authenticated user's browser by registering a crafted username containing an HTML-encoded single quote. The escapeHTML() sanitizer in js/app.js encodes the character to ', but the browser HTML-decodes attribute values before the JavaScript engine parses the onclick handler, causing the encoded quote to reconstitute as a literal quote and break out of the JS string literal at runtime. No public exploit code has been confirmed at time of analysis, though the GitHub commit diff fully discloses the vulnerable code path and bypass technique, substantially lowering the bar for independent reproduction.

RemediationAI

Upgrade to Pentestify 1.1.1, available at https://github.com/ccyl13/Pentestify/releases/tag/v1.1.1 and confirmed by the fix commit https://github.com/ccyl13/Pentestify/commit/714e05ef7cfaf4d822193b8d18eacafbd89f5019. The release also bumps fastapi to 0.115.6, starlette to 0.41.3 (addressing CVE-2024-47874), and python-multipart to 0.0.32 (addressing CVE-2024-53981), making the upgrade beneficial beyond the XSS fix alone. If immediate upgrade is not possible, restrict the ability to create new user accounts to fully trusted administrators only - this removes the attacker's ability to register a malicious username but does not fix the underlying rendering flaw and must be treated as temporary. Deploying a Content Security Policy header that disallows unsafe-inline script execution can reduce XSS blast radius across the application; however, adding a strict CSP to an existing application with inline event handlers (as this one uses) may break legitimate functionality and requires thorough testing before production deployment.

Affected VersionsENISA

Pentestify 0 <1.1.1

Affected Packages

euvd pentestify fix: 1.1.1

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

The flaw originates in a JavaScript template literal in js/app.js that builds each account's delete button by interpolating the username directly into an inline onclick event handler: onclick="deleteUser(${u.id}, '${escapeHTML(u.username)}')". The escapeHTML() call converts a literal single quote to the HTML entity &#39;, which appears to neutralize injection. However, the HTML parser processes and decodes attribute values before handing the handler string to the JavaScript engine - a well-documented double-context execution path that makes HTML-entity encoding insufficient for JavaScript string contexts. This root cause class is captured by CWE-79 (Improper Neutralization of Input During Web Page Generation). The CPE cpe:2.3:a:maalfer:pentestify:*:*:*:*:*:*:*:* confirms all pre-1.1.1 releases are affected. The fix in commit 714e05ef takes a defense-in-depth approach: the frontend removes username from the inline handler entirely (passing only userId and resolving the name from application state), while the backend adds a strict allowlist regex (^[A-Za-z0-9_.\-]{3,32}$) in schemas.py at the Pydantic validation layer, preventing special characters at registration time regardless of frontend behavior.

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

Vendor (Secur0) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N
vuln.today AI 5.4 MEDIUM

Network-accessible web app requires low-privilege auth (PR:L) and victim must click delete (UI:R); payload executes in victim's browser scope, constituting a scope change (S:C) with modest confidentiality and integrity impact.

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

Primary rating from Vendor (Secur0).

CVSS VectorVendor: Secur0

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
Low
Subsequent system: Availability
None

DescriptionCVE.org

Stored Cross-site Scripting (CWE-79) in the user management component in maalfer Pentestify before 1.1.1 allows an authenticated attacker to execute arbitrary JavaScript in the browser of another authenticated user via a crafted username, because the frontend escapes the username with escapeHTML() before interpolating it into the onclick attribute of the account deletion button, but the browser HTML-decodes attribute values before the JavaScript engine parses the handler, allowing an encoded single quote (') to break out of the string literal and inject arbitrary JavaScript that executes when the victim clicks the delete button for that account.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Rare
niche open-source pentesting tool, minimal enterprise deployment footprint
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment CIRCL GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

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