Skip to main content

blueprintUE self-hosted edition EUVDEUVD-2026-116593

| CVE-2026-121735 MEDIUM
Insufficient Session Expiration (CWE-613)
2026-11-03 disclosure@vulncheck.com GHSA-pc87-6hr3-m9jr
6.3
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain stale confirmation token from a leaked/old email
  2. Exploit
    Visit /confirm-account/?confirmed_token=<token>
  3. Execution
    Token validates despite age (confirmed_sent_at ignored)
  4. Impact
    Unconfirmed account activated and shielded from cleanup purge

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V7 - Session Management Session expiration enforcement
Exploitation Conditions

The attacker must possess a valid, previously-issued confirmation token for a specific account that is still unconfirmed (confirmed_at IS NULL), obtained out-of-band - a compromised mailbox, old email backup, forwarded mail, or server logs - since the attacker cannot generate tokens themselves. The vulnerable path is the unauthenticated /confirm-account/ endpoint in blueprintUE self-hosted edition <=4.3.3, where findUserIDWithConfirmedToken never evaluates confirmed_sent_at, so any age of token is accepted. Limiting factors: exploitation is entirely gated on leaking a stale token (no token = no attack), it yields only account activation and purge-evasion rather than password access or takeover, and the fix in 4.3.4 is the only complete remedy (tokens are given a 1-hour validity window and regenerated on resend).

Impact

The supplied CVSS 4.0 base score is 6.3 (medium) with vector AV:N/AC:L/AT:P/PR:N/UI:N and impact limited to VI:L (VC:N, VA:N) - i.e. a low integrity impact only, no confidentiality or availability effect. The AT:P (attack requirements present) metric reflects that exploitation depends on the attacker first obtaining a stale, previously-issued confirmation token, a precondition outside the attacker's control; they cannot mint tokens themselves. No CISA KEV listing is present and no EPSS score was provided, and there is no evidence of active exploitation, so exploitation status is: no public exploit identified as active, though a step-by-step PoC reference exists in the GHSA advisory (not verified as working exploit code). The vuln.today decision label is this_month, consistent with routine (not emergency) prioritization. Net real-world risk is modest and bounded: the flaw lets an attacker activate an account that was never confirmed and lets that account evade the optional 30-day cleanup cron, but per the vendor it does not disclose the password and is not account takeover by itself. This is a genuine-but-low-urgency issue rather than a high-impact priority; the main signal to weigh is that AV:N looks alarming but the AT:P prerequisite (leaked old email/token) substantially limits practical exploitability.

Exploit ScenarioDerived

An attacker who recovers an old blueprintUE registration email from a compromised mailbox, email backup, forwarded message, or server logs extracts the never-expiring confirmed_token and requests /confirm-account/?confirmed_token=<token>. Because UserModel::findUserIDWithConfirmedToken only checks the token and that confirmed_at IS NULL - ignoring confirmed_sent_at - a months-old token still validates and activates the unconfirmed account, also keeping it from the unconfirmed-user purge job. A proof-of-concept with exact SQL and steps is published in the GHSA advisory, but it is a reference PoC, not verified as packaged working exploit code.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Nov 03, 2026

Stale account-confirmation links in blueprintUE self-hosted edition 4.3.3 and earlier never expire, so anyone who later obtains an old confirmation email - from a compromised mailbox, an archived backup, forwarded mail, or server logs - can still activate an account that was never meant to be confirmed. The impact is confined to unauthorised account activation plus evasion of the optional unconfirmed-user purge job; the token does not expose the password and does not by itself constitute account takeover. The vendor's GHSA-qp6g-7v4v-33r9 advisory documents a proof-of-concept procedure, no CISA KEV entry exists, and the issue is scored medium (supplied CVSS 4.0 base 6.3; assessor CVSS 3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N), which places it on a 'this month' remediation cadence rather than an emergency one.

RemediationAI

Upgrade blueprintUE self-hosted edition to 4.3.4 or later - vendor-released patch 4.3.4 (release tag v4.3.4, upstream commit 8bba1615bf76b144ac5cd72637c243490f08bc37, PR #266) is the only complete remedy, because it enforces the one-hour confirmation window, regenerates the token on every resend, and extends the resend throttle to one hour. Per the advisory, no configuration toggle removes the flaw in 4.3.3: the lookup simply never reads confirmed_sent_at. Compensating controls for instances that cannot move immediately are operational and partial: make sure the optional unconfirmed-account cleanup cron job is actually scheduled and running, since the advisory notes many installs leave it unset and unconfirmed rows then persist indefinitely - the trade-off is that legitimate slow-to-confirm users lose their pending account; and treat any confirmation email or link as a live credential, expiring or rotating tokens directly in the database (for example overwriting confirmed_token with a random value or setting confirmed_at) for accounts that should not be activated - this breaks any confirmation mail already in flight and must be repeated as new stale mails surface. Because the pre-fix flaw only ever yields activation of an unconfirmed account, reviewing users created by unverified registrations for abuse after applying the update is worthwhile. References: https://github.com/blueprintue/blueprintue-self-hosted-edition/security/advisories/GHSA-qp6g-7v4v-33r9, https://github.com/blueprintue/blueprintue-self-hosted-edition/releases/tag/v4.3.4, https://www.vulncheck.com/advisories/blueprintue-self-hosted-edition-before-4.3.4-non-expiring-account-confirmation-tokens.

Affected VersionsENISA

blueprintue-self-hosted-edition 0 <4.3.4

Affected Packages

euvd blueprintue_self_hosted_edition fix: 4.3.4

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

blueprintUE self-hosted edition is a PHP web application using a custom MVC layer over a MySQL database with a users table holding confirmed_token, confirmed_at and confirmed_sent_at columns. On registration (and on resend), a token is produced with Helper::getRandomString(255) and mailed as a link to /confirm-account/?confirmed_token=..., which is reachable without authentication. The lookup routine UserModel::findUserIDWithConfirmedToken only asserted that the supplied token matched a row and that confirmed_at IS NULL; it never evaluated confirmed_sent_at, so token age was irrelevant to acceptance. That is the CWE-613 insufficient session expiration class: a credential-like secret with no enforced lifetime and no rotation. The upstream commit 8bba1615bf76b144ac5cd72637c243490f08bc37 closes the gap by adding AND confirmed_sent_at >= (UTC_TIMESTAMP() - INTERVAL 1 HOUR) to the lookup, so tokens are now valid for one hour only; the same commit stops reusing an existing token when resending and always mints a fresh one, raises the resend throttle in UserService::isUserConfirmedAccount from 300 to 3600 seconds, updates the confirmation email and error page to say the link is valid for one hour or has expired, and adjusts the login/confirm-account test fixtures accordingly. The trigger is the unauthenticated confirmation endpoint; the attacker cannot mint tokens and must already hold a valid token for an account that is still unconfirmed.

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

Vendor (vulncheck) PRIMARY 6.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 3.7 LOW

Confirm endpoint is unauthenticated (PR:N/UI:N), but exploitation needs an out-of-band leaked stale token the attacker can't control (AC:H); impact is only account activation, so I:L and C:N/A:N.

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

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

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

Lifecycle Timeline

1
Patch available
Nov 04, 2026 - 02:16 EUVD

DescriptionCVE.org

blueprintUE self-hosted edition before 4.3.4 contains an insufficient session expiration vulnerability that allows attackers to confirm accounts using stale tokens because UserModel::findUserIDWithConfirmedToken ignores confirmed_sent_at. Attackers who obtain an old confirmation link from a compromised mailbox, backup, or forwarded mail can activate unconfirmed accounts and evade the unconfirmed-account cleanup job.

Threat Intelligence Overview

Prevalence
Low
niche self-hosted Unreal Engine blueprint-sharing app, small footprint
Data Quality
3 sources
Confidence: Low

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 N/A
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· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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