GitHub Advisoryadvisory · Packagist
GHSA-4pf7-cc4r-g63h YesWiki has Authenticated SQL Injection via ReactionManager
HIGH
Official page ↗
- Aliases
- CVE-2026-52775
- Ecosystem
- Packagist
- Packages
- yeswiki/yeswiki
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- Weaknesses
- CWE-89
- Reviewed
- 2026-07-09
Affected packages
• Packagist yeswiki/yeswiki: < 4.6.6 → fixed in 4.6.6
Description
Summary
YesWiki through the latest development branch contains a SQL injection vulnerability in `ReactionManager::deleteUserReaction()` that allows any authenticated user to inject arbitrary SQL via the `{idreaction}` and `{id}` URL path parameters. The parameters are concatenated directly into a SQL LIKE clause without escaping or parameterization.
This is a sibling of CVE-2026-46670 (unauthenticated SQLi in `FormManager::create()`). Both share the same root cause — raw string concatenation into SQL queries — but exist in different components.
Root Cause
`includes/controllers/ApiController.php` line 726:
```php
/**
• @Route("/api/reactions/{idreaction}/{id}/{page}/{username}", methods={"DELETE"}, options={"acl":{"+"}})
*/
```
ACL `"+"` = any authenticated user. Parameters flow into `ReactionManager::deleteUserReaction()` → `TripleStore::delete()` with raw string concatenation into SQL LIKE clause (line 356).
The `if` branch (lines 340-354) properly uses `$this->dbService->escape()`. The `else` branch does not — the developer applied escaping to one code path but not the other.
PoC
```
DELETE /wiki/?api/reactions/x%27%20OR%201=1%20OR%20value%20LIKE%20%27/test/SomePage/attacker
Host: localhost:8085
Cookie:
```
Time-based blind variant via `{id}` parameter for data exfiltration.
Impact
Full database read/write. Any self-registered user can extract `yeswiki_users` password hashes and emails.
Suggested Fix
Apply `$this->dbService->escape()` to all parameters in the `else` branch, matching the `if` branch pattern. Also audit all `TripleStore::delete()` callers that pass `$extraSQL`.
Credits
Kai Aizen / SnailSploit
Related
Alias · CVE (1)
- CVE-2026-52775 YesWiki is a wiki system written in PHP. vulnerability
Weakness · CWE (1)
- CWE-89 Improper Neutralization of Special Elements used in an SQL Command weakness