Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as administrator
-
DeliveryCreate page invoking {{despam}} action
-
ExploitSubmit crafted 'from' POST parameter
-
ExecutionBreak out of unquoted INTERVAL operand
-
ImpactBlind-read yeswiki_users.password hashes
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Persistence The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated YesWiki administrator - despam.php is gated on UserIsAdmin() at line 23, so this cannot be reached by anonymous or low-privileged users. The attacker must reach the {{despam}} action (an admin can create the page per YesWiki's own anti-spam documentation) and submit its form (second gate is the form's own submit button, $_POST['2']). Creating the action page is subject to the hashcash antispam (use_hashcash defaults to true in tools/security/config.yaml), which the published PoC solves programmatically rather than being a true barrier. No other non-default configuration is required: all YesWiki versions before 4.7.0 are affected in default installs. The exploit as run is read-only (blind reads via the SELECT that lists candidate pages); the dominant limiting factor is the administrator-privilege requirement, not configuration. |
| Impact | This is a genuine but gated confidentiality issue rather than a drop-everything emergency, and the signals are internally consistent. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:H/UI:N/VC:H) scores 6.9 (medium): network-reachable over HTTP with low complexity, but PR:H means it is exploitable only by an authenticated administrator, and impact is confidentiality-only (blind database reads). EPSS is low at 0.25% (16th percentile) and the CVE is NOT in CISA KEV, so there is no evidence of active or widespread exploitation. Offsetting that, a full, self-verifying PoC is published in the vendor GHSA advisory and confirmed working against development HEAD, which removes any research barrier for an attacker who already holds admin access. The vuln.today decision label is 'this_month', which aligns with the combined picture: credible and weaponized in PoC form, but bounded by the administrator-privilege precondition and low observed exploitation. The practical escalation concern is that the blind read targets yeswiki_users.password hashes, so one compromised or malicious admin can harvest other users' (including other admins') credentials - the same escalation path noted for CVE-2026-46670. No signals conflict here; the main caveat is that risk is almost entirely a function of how exposed and trusted YesWiki admin accounts are in a given deployment. |
| Exploit ScenarioDerived | An authenticated administrator (or an attacker who has phished or reused credentials for an admin account) creates a page containing the {{despam}} action and submits its form with a crafted 'from' POST parameter. Because the value is escaped but placed in an unquoted INTERVAL operand, the attacker breaks out with parentheses and comment markers to append boolean/time-based conditions, using the rendered result-row count as an oracle to blind-read arbitrary data including yeswiki_users.password. A full self-verifying PoC exists and is confirmed working; attack complexity is low once admin access is held. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Blind SQL injection in the YesWiki despam action (tools/security/actions/despam.php) allows an authenticated administrator to read arbitrary data from the wiki database, including rows from yeswiki_users such as password hashes, affecting every release before 4.7.0. The 'from' POST parameter is passed through mysqli_real_escape_string() but then lands in an unquoted INTERVAL operand, so escaping is inapplicable and attacker-supplied parentheses, keywords and comment markers are interpreted as SQL. Exploitation requires a YesWiki administrator account (despam.php is gated on UserIsAdmin() at line 23); a public proof-of-concept script is published in the vendor's GitHub security advisory and was verified against the doryphore-dev branch, with the result-row count and SLEEP() timing both serving as blind oracles. EPSS is low at 0.25% (16th percentile) and there is no KEV entry; the vuln.today decision label is 'this_month', reflecting a genuine but privilege-gated confidentiality issue rather than an emergency.
RemediationAI
Upgrade YesWiki to 4.7.0 or later - the vendor-released patch ships the corrected statement that casts the parameter (interval ' . intval($_POST['from']) . " hour)), closing the injection without changing expected behaviour for legitimate interval values, per the advisory at https://github.com/YesWiki/yeswiki/security/advisories/GHSA-w7cp-76pj-w4m5. If upgrading immediately is not possible, the practical compensating control is administrative rather than network-level: restrict YesWiki administrator accounts to fully trusted operators and review who holds them, since the vulnerability is unreachable without admin rights, and audit any existing pages containing the {{despam}} action, removing them where they are not actively needed (note that this breaks the documented spam-cleanup workflow). Leaving YesWiki's hashcash antispam enabled (use_hashcash, default true in tools/security/config.yaml) raises the effort of automatically planting a despam page but does not stop a determined attacker - the published PoC solves the hashcash challenge programmatically - so it is not a substitute for patching. Because the demonstrated impact is blind read of the wiki database including yeswiki_users password hashes, rotate administrator and user credentials and review database logs for anomalous despam requests if the instance ran unpatched with untrusted admin access; YesWiki stores passwords as md5, so any exposure should be treated as equivalent to plaintext credential compromise.
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
The flaw is CWE-89 SQL injection arising from a type-confusion between escaping and casting. In despam.php the query builds where time > date_sub(now(), interval ' . DbService::escape($_POST['from']) . " hour)", where DbService::escape() is a thin wrapper over mysqli_real_escape_string(). That function neutralises quotes only; it does not touch parentheses, SQL keywords, operators or comment markers, and an unquoted INTERVAL count needs none of those to be abused. Supplying 744 hour) OR (1=1) -- closes the date_sub() call and appends an arbitrary boolean predicate, which turns the candidate-page listing into a boolean oracle exposed over HTTP: the result table renders one <input name="suppr[]"> checkbox per matching page, so the row count reveals the truth value of the injected condition. Because YesWiki actions are embedded in page content, an administrator who creates a page containing {{despam}} - which YesWiki's own anti-spam documentation recommends for spam cleanup - exposes the form; the second gate is the form's own submit button ($_POST['2']). Page creation is protected by YesWiki's hashcash antispam (use_hashcash defaults to true in tools/security/config.yaml), but the published PoC solves that challenge programmatically via tools/security/wp-hashcash-getkey.php, so it is not a real barrier. One published claim is inaccurate: the -- comment does not neutralise the and latest = 'Y' guard, because that clause sits on the next line of a multi-line statement, so the comment only reaches the end of its own line. The correct fix is a cast, not stronger escaping: interval ' . intval($_POST['from']) . " hour)". The PoC as demonstrated is read-only (it only affects the SELECT that lists candidate pages), leaving integrity and availability untouched, which matches the assessed CVSS:3.1 vector AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N.
Know when Yeswiki 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:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Network HTTP reachable (AV:N) and escaping is simply inapplicable to the unquoted position (AC:L), but the admin-only UserIsAdmin() gate forces PR:H; impact is blind DB read only, so C:H and I:N/A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
YesWiki before 4.7.0 contains a sql injection vulnerability in despam.php where the from parameter is escaped but placed in an unquoted INTERVAL position. Authenticated administrators can inject SQL via the from POST parameter to perform blind reads of the database including user password hashes.
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
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
YesWiki is a wiki system written in PHP. Rated high severity (CVSS 8.6), this vulnerability is remotely exploitable, no
YesWiki is a wiki system written in PHP. Rated critical severity (CVSS 10.0), this vulnerability is remotely exploitable
Remote code execution in YesWiki prior to 4.6.6 allows unauthenticated attackers to inject arbitrary PHP via the Bazar C
YesWiki is a wiki system written in PHP. Rated critical severity (CVSS 9.1), this vulnerability is remotely exploitable,
YesWiki is a wiki system written in PHP. Rated high severity (CVSS 7.6), this vulnerability is remotely exploitable, no
Unauthenticated server-side request forgery in YesWiki before 4.7.0 lets any remote visitor make the wiki server issue H
YesWiki is a wiki system written in PHP. Rated medium severity (CVSS 5.8), this vulnerability is remotely exploitable, n
YesWiki is a wiki system written in PHP. Rated medium severity (CVSS 6.3), this vulnerability is remotely exploitable, n
Cross Site Scripting vulnerability in YesWiki v.4.54 allows a remote attacker to execute arbitrary code via a crafted pa
YesWiki version <= cercopitheque beta 1 contains a PHP Object Injection vulnerability in Unserialising user entered para
Authorization bypass in YesWiki before 4.6.7 lets unauthenticated remote attackers call admin-only API routes when the i
Unauthenticated attackers can delete or overwrite federated entries in YesWiki instances before 4.6.7 that have Activity
EUVD-2026-110535
GHSA-hxwq-9qc3-4972
NVD
CVE.org
EPSS
VulDB
Exploit-DB