Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid private API key
-
DeliveryCall users()/user() API endpoints
-
ExploitReceive unfiltered rows with hashes/tokens/TOTP secrets
-
ExecutionReplay reset tokens and TOTP secrets
-
ImpactTake over accounts and bypass 2FA
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V6 - Authentication Credential protection in transit/storage
|
| Exploitation Conditions | Exploitation requires the attacker to hold a valid private API key for the target pH7Builder instance and to reach the member API's UserController::users()/user() endpoints, which return unfiltered database rows on versions before 18.5.0. The limiting factors are: (1) a valid private API key is mandatory (PR:L) - anonymous attackers cannot exploit this; (2) the target must expose the member API to the attacker; and (3) only unpatched versions prior to 18.5.0 are affected. The leaked hashValidation reset tokens being non-expiring removes any time-window limit on token replay, amplifying the post-disclosure impact. |
| Impact | This is a credible but bounded risk best characterized as medium-severity requiring authentication. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) confirms network-reachable, low-complexity exploitation with no user interaction, but PR:L means an attacker must already hold a valid private API key - this is not an anonymous, internet-wide exposure. The impact is concentrated on confidentiality (VC:H) with no integrity or availability effect (VI:N/VA:N), which aligns with CWE-522 (Insufficiently Protected Credentials): the API returns bcrypt password hashes, non-expiring hashValidation reset tokens, and TOTP secrets. The real-world danger is the secondary effect - leaked reset tokens and TOTP secrets enable account takeover and 2FA bypass, so confidentiality loss cascades into integrity compromise even though the base vector scores VI:N. No EPSS score, no CISA KEV listing, and no public exploit were provided, so there is no evidence of active or automated exploitation; the patch and root cause are, however, firmly confirmed by the vendor commit. Net: prioritize patching for any internet-facing pH7 deployment that issues API keys, but this is not a drop-everything emergency on the level of an unauthenticated RCE - the PR:L barrier and niche product footprint temper urgency. Note one signal-vs-text nuance: the vector says PR:L (a valid private API key), which is weaker than full user authentication, so a leaked or over-provisioned key materially widens exposure. |
| Exploit ScenarioDerived | An attacker who has obtained a valid private API key (e.g., a low-trust integration partner, a compromised third-party app, or a leaked key) calls the member API's users()/user() endpoints and receives raw database rows including bcrypt hashes, hashValidation reset tokens, and TOTP secrets. Using the non-expiring reset tokens and TOTP secrets, the attacker takes over targeted member accounts and bypasses two-factor authentication. No public exploit code was identified at time of analysis, but the vulnerable code path and fix are confirmed in the vendor's GitHub commit. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 11, 2026
Authenticated API clients of pH7Builder (pH7 Social Dating CMS) before 18.5.0 can retrieve sensitive member records - including bcrypt password hashes, non-expiring hashValidation password-reset tokens, and TOTP two-factor secrets - because the member API endpoints UserController::users() and user() return unfiltered database rows directly to the caller. Exploitation requires a valid private API key (PR:L) and network reachability to the exposed member API, so anonymous attackers cannot trigger it, but the leaked reset tokens never expire, removing any time window on their reuse. No public exploit code has been identified at time of analysis and the issue is not confirmed as actively exploited (CISA KEV); the vendor addressed it in 18.5.0 and via upstream commit 52a59da. This is a credible but bounded risk best characterized as medium-severity requiring authentication.
RemediationAI
Vendor-released patch: upgrade to pH7Builder 18.5.0, which centralizes credential stripping in _protected/framework/Api/Api.trait.php via a recursive filterSensitiveFields() routine covering password, hashValidation, and twoFactorAuthSecret - see upstream commit 52a59da534c7666f7607c8a9b8c42037eb4de66d (https://github.com/pH7Software/pH7-Social-Dating-CMS/commit/52a59da534c7666f7607c8a9b8c42037eb4de66d) and the vendor advisory at https://www.vulncheck.com/advisories/ph7builder-before-18.5.0-sensitive-data-exposure-via-member-api-usercontroller. Patching alone does not undo prior exposure, so treat every member record reachable through the API as compromised: force a global password reset, invalidate all outstanding hashValidation reset tokens (they do not expire on their own, so they must be explicitly cleared or regenerated), and re-provision TOTP secrets for affected accounts - regenerate the authenticator enrollment for every user flagged, since a leaked twoFactorAuthSecret remains valid until replaced, and be aware this forces re-enrollment friction for legitimate users. Rotate any private API keys used by trusted integrations and audit API access logs for the users()/user() endpoints to identify which records were actually pulled; rotating keys will break existing integrations until clients are reconfigured. As a compensating control while patching, restrict the member API to known client IP ranges at a reverse proxy or WAF and disable the public-facing member API entirely on instances where no external integration depends on it - the trade-off being that legitimate mobile or partner clients lose access - and monitor outbound use of reset tokens in the interim.
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
pH7Builder is a PHP social dating CMS built on its own MVC framework, and the affected code lives in the framework's API layer: _protected/app/system/modules/api/controllers/UserController.php and the shared _protected/framework/Api/Api.trait.php. The vulnerability is CWE-522 (Insufficiently Protected Credentials): the API's JSON encoding helper serialized entire database rows straight to API responses, so credential-bearing columns such as password (a bcrypt hash), hashValidation (used as a password-reset validation token), and twoFactorAuthSecret (the TOTP seed backing two-factor authentication) were included in output whenever the users()/user() actions returned member objects. The upstream fix introduces a private SENSITIVE_FIELDS constant in Api.trait.php and a recursive filterSensitiveFields() routine applied inside the JSON encoder, which walks nested arrays and objects (cloning objects rather than mutating them) and unsets those three fields at every depth, and the corresponding unit test verifies both the recursion and that the original object is not modified. The patch commit also removes now-redundant unset($aData['password']) calls from the createAccount() and login() paths in UserController.php, since filtering is centralized in the encoder. Because the leaked hashValidation tokens are non-expiring in the affected versions, disclosure is not merely informational: the tokens remain replayable indefinitely for password reset, and the TOTP secrets permit generation of valid second factors, effectively defeating 2FA for any member whose record was exposed.
Know when the next one hits your stack
- 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:H/VI:N/VA:N/SC:N/SI:N/SA:N
API reachable over network with low complexity (AV:N/AC:L); a valid private API key is required so PR:L not PR:N; high confidentiality loss of credentials, no direct integrity/availability impact (C:H/I:N/A:N).
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
2DescriptionCVE.org
pH7Builder (pH7 Social Dating CMS) before 18.5.0 contains an information disclosure vulnerability that allows API clients to obtain sensitive member data because UserController::users() and user() return unfiltered database rows. Attackers holding a valid private API key can retrieve bcrypt password hashes, non-expiring hashValidation reset tokens, and TOTP secrets to take over accounts and bypass two-factor authentication.
Executive ViewAI
pH7Builder (pH7 Social Dating CMS) deployments below 18.5.0 expose sensitive member records to authenticated API clients holding a valid private API key, including password hashes, non-expiring password-reset tokens, and TOTP secrets. This creates account-takeover and privacy/compliance risk for affected dating-platform members, so leadership should prioritize verification, credential rotation, and remediation despite the requirement for authenticated access. No public exploit identified at time of analysis and the issue is not confirmed actively exploited (CISA KEV).
Apply vendor patch.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-97067
GHSA-3m9j-mmxr-3x76
NVD
CVE.org
EPSS
Exploit-DB