Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessFetch CSRF token from public page
-
ExploitSend unauthenticated POST to /api/init_step/
-
ExecutionReset INIT and force setup re-entry
-
ImpactRead exposed PROVIDER credentials from /init/ response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection Sensitive file access control
|
| Exploitation Conditions | Requires a reachable Qexo instance on versions 4.0.0 through pre-4.2.0 where the /api/init_step/ endpoint (init_step_api) is exposed without the setup-completion guard; the attacker needs only a valid CSRF token, which is trivially obtained from any public page of the instance, and no authentication or prior privileges. Meaningful impact depends on the instance having already been initialized with stored PROVIDER configuration (e.g. Vercel token/project ID or image-bed credentials) so that sensitive values exist to be exposed in the setup response/ /init/ page. Limiting factors: only instances within the affected version range are vulnerable, and instances with no configured provider credentials expose little beyond the forced setup-flow reset. |
| Impact | The CNA-assigned CVSS 4.0 base score is 9.3 (Critical) with vector AV:N/AC:L/PR:N/UI:N, indicating a remotely reachable, low-complexity, unauthenticated flaw - all strong signals for easy exploitation. However, several real-world risk moderators apply. No EPSS score, no CISA KEV listing, and no public exploit were provided in the input, so there is no public exploit identified at time of analysis and no evidence of active or automated exploitation. The affected product (Qexo, a niche self-hosted static-blog editor) has a small deployment footprint, which lowers the likelihood of widespread opportunistic attacks relative to the high base score. There is also an internal inconsistency in the supplied CVSS 4.0 vector worth verifying: it sets vulnerable-system integrity/availability to none (VI:N/VA:N) while rating subsequent-system impacts high (SC:H/SI:H/SA:H), yet the description's core behaviors - resetting the INIT setting and forcing re-entry into the setup flow - are modifications to the vulnerable system itself, which would normally register as vulnerable-system integrity impact. The confirmed, high-confidence risk is unauthenticated disclosure of stored PROVIDER service credentials (CWE-538), a genuine priority for any exposed instance, but the practical blast radius is bounded by the product's limited prevalence and the requirement that provider credentials already be configured. |
| Exploit ScenarioDerived | An unauthenticated attacker fetches a valid CSRF token from any public Qexo page, then POSTs the first initialization step to the unguarded /api/init_step/ endpoint, resetting the instance's INIT state and forcing it back into the setup flow. The attacker then loads the /init/ page or reads the setup response, which renders stored PROVIDER configuration (e.g. service/deployment credentials) in frontend content. No public exploit was identified at time of analysis, but the GitHub Security Advisory and fix commit are public, making the flaw straightforward to reproduce. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 12, 2026
Qexo instances running versions 4.0.0 through any release before 4.2.0 expose the /api/init_step/ initialization endpoint without authentication or a setup-completion guard, allowing an unauthenticated attacker who supplies a CSRF token harvested from any public page of the instance to restart the setup flow and, in the same interaction, read back stored PROVIDER configuration such as service credentials. The CNA rates this 9.3 (Critical, CVSS 4.0) while our independent CVSS 3.1 assessment scores it AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N, reflecting that the integrity impact is a forced re-entry into initialization rather than arbitrary data modification, and that the confidentiality loss only materializes on instances that have already stored provider secrets (for example a Vercel token or image-bed credentials). No public exploit code or confirmed active exploitation was identified at time of analysis, and the issue is fixed in Qexo 4.2.0.
RemediationAI
Vendor-released patch: upgrade to Qexo 4.2.0, which is published at https://github.com/Qexo/Qexo/releases/tag/4.2.0 and contains the fix commit 3782750c2d90bf145b88edab443e82f5545a2d33; per the advisory at https://github.com/Qexo/Qexo/security/advisories/GHSA-qfv8-hj33-4232 this is the only fully supported remedy, and it both enforces the initialization guard and stops leaking provider secrets. Where immediate upgrade is not possible, block the paths /api/init_step/ and /init/ at the reverse proxy or WAF for any instance whose setup is already complete - the trade-off is that legitimate re-initialization or reconfiguration then requires temporarily re-enabling the route, so the rule should be scoped to production hosts rather than applied globally. Because the exposed data may already have been retrieved by an attacker, rotate every credential referenced in PROVIDER, including the Vercel token/project ID and any image-bed or deployment API keys, after patching, and treat rotation as mandatory rather than optional since exposure of these values is the primary confidentiality impact. Review server and application logs for the warning emitted by the patched init_not_completed decorator (which records the requester IP and path on rejected post-setup access) to detect prior probing of the endpoint; the fix logs a message when INIT is at or above the completion threshold, so any pre-patch hits will not appear there and proxy access logs should be used to establish historical exposure.
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
Qexo is a Django-based web front end for managing static blogs, and the flaw sits in the application's multi-step setup wizard. The /api/init_step/ endpoint (init_step_api) drives that wizard by writing the application's INIT setting, which tracks setup progress; the vulnerable build left the view reachable after setup had completed (INIT at or beyond the final step) and without any authentication or authorization check, and it was exempted from CSRF protection. The root cause class per the assigned CWE-538 (insertion of sensitive information into an externally accessible location) combines with the missing access control: the init handler's context-building code serialized the stored PROVIDER setting and injected Vercel values (vercel_token, project_id) into what the /init/ page and the setup response return to the client, so an attacker who merely triggers the first initialization step is handed back credentials that back the instance's deployment and image-hosting integrations. The vendor fix adds an init_not_completed decorator that reads the cached INIT setting and returns HTTP 403 with an INIT_ALREADY_COMPLETED message (or redirects to /login/ for web views) when initialization has finished, replaces the CSRF exemption with csrf_protect on the API path, and strips PROVIDER, vercel_token and project_id from the data returned to the front end so that only configuration templates are rendered.
Know when Qexo 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:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:H/SA:H
Unauthenticated network endpoint with a CSRF token trivially obtainable from a public page gives AV:N/AC:L/PR:N; impact is primarily credential disclosure (C:H) plus the INIT reset (I:L).
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Qexo is an open source online editor for static blogs. From 4.0.0 until 4.2.0, Qexo exposes /api/init_step/ through init_step_api without authentication, authorization, or a setup-completion guard. An unauthenticated requester with a valid CSRF token obtained from a public page can submit the first initialization step and reset the INIT setting, causing the instance to re-enter the setup flow. The setup response and /init/ page can expose stored PROVIDER configuration, including service credentials, in frontend content. This issue is fixed in version 4.2.0.
Executive ViewAI
Qexo instances running versions 4.0.0 through 4.1.x are vulnerable to an unauthenticated attacker who can retrieve stored provider credentials and force a restart of the setup process, potentially leading to unauthorized access to third-party services and operational disruption. This critical issue affects organizations using these versions, and successful exploitation could compromise sensitive credentials such as Vercel tokens, enabling further attacks. Leadership should prioritize immediate upgrading to version 4.2.0 to protect organizational assets.
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
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
EUVD-2026-97979
NVD
CVE.org
EPSS
GitHub
Exploit-DB