| Title | wuzhicms <=4.1.0 SSRF |
|---|
| Description | The rich-text editor's remote-image-fetch feature, attachment::ckeditor(), performs no login-state/cookie validation whatsoever (in stark contrast to file_brower() in the same file, which does require authentication). The action=catchimage branch calls ckditor::saveRemote(), which takes URLs from the user-submitted source[] array and hands each one to Uploader::saveRemote(). That method's only validation on the URL is strpos($imgUrl,"http")!==0 (merely requiring an http prefix) — there is no internal/private IP blacklist, no domain whitelist, and no port restriction. It then directly calls get_headers($imgUrl,1) and readfile($imgUrl,false,$context), causing the server to issue a request, under its own network identity, to any attacker-specified host:port. |
|---|
| Source | ⚠️ https://github.com/wuzhicms/wuzhicms/issues/221 |
|---|
| User | ZAST.AI (UID 87884) |
|---|
| Submission | 08/18/2026 12:07 (29 days ago) |
|---|
| Moderation | 09/16/2026 09:43 (29 days later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 405512 [WuzhiCMS up to 4.1.0 Remote Image Fetch index.php ckditor::saveRemote source[] server-side request forgery] |
|---|
| Points | 19 |
|---|