{"schemaVersion":3,"id":"CVE-2026-4912","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"The Media Cleaner: Clean your WordPress! plugin for WordPress is vulnerable to Server-Side Request Forgery in all versions up to, and including, 7.0.3. This is due to the `get_urls_from_html()` function using `DOMDocument::loadHTMLFile()` to fetch iframe source URLs with an insufficient hostname validation check that relies on a substring match against the site's server name. This makes it possible for authenticated attackers, with Administrator-level access and above, to make web requests to arbitrary locations originating from the web application, which can be used to query and interact with internal services.","dates":{"published":"2026-07-28T18:35:52.515Z","modified":"2026-07-28T19:37:49.185Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":4.1,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":4.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":4.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"wordfence","score":4.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:N/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00412,"percentile":0.34024,"severity":"low","asOf":"2026-10-19T00:00:00.000Z","change":{"pp":0.17200000000000007,"baselineDate":"2026-09-19T00:00:00.000Z","baselineScore":0.0024},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00412,"percentile":0.34024}],"last30":[{"date":"2026-09-19T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00412,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00412,"percentile":0.34024}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-918","name":"Server-Side Request Forgery (SSRF)","description":"The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/918.html"}],"affected":[{"vendor":"tigroumeow","product":"media cleaner: clean your wordpress!","name":"Media Cleaner: Clean your WordPress!","label":"media cleaner: clean your wordpress!","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≤ 7.0.3","noFixRecorded":false,"fixedIn":null}],"versionsText":"≤ 7.0.3","eol":null,"hubHref":null},{"vendor":"wordpress","product":"media-cleaner","name":"Media Cleaner: Delete Unused Images & Clean Your Media Library","label":"media-cleaner","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≤ 7.0.3 (fixed in 7.0.6)","noFixRecorded":false,"fixedIn":"7.0.6"}],"versionsText":"≤ 7.0.3 (fixed in 7.0.6)","eol":null,"hubHref":null}],"affectedCount":2,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/e9c9214d-45d4-4477-8244-7802a4901114?source=cve","label":"www.wordfence.com/threat-intel/vulnerabilities/id/e9c9214d-45d4-4477-8244-7802a4901114?source=cve","hostname":"www.wordfence.com","tags":[]},{"url":"https://plugins.trac.wordpress.org/browser/media-cleaner/tags/7.0.3/classes/core.php#L565","label":"plugins.trac.wordpress.org/browser/media-cleaner/tags/7.0.3/classes/core.php","hostname":"plugins.trac.wordpress.org","tags":[]},{"url":"https://plugins.trac.wordpress.org/browser/media-cleaner/tags/7.0.3/classes/core.php#L570","label":"plugins.trac.wordpress.org/browser/media-cleaner/tags/7.0.3/classes/core.php","hostname":"plugins.trac.wordpress.org","tags":[]},{"url":"https://plugins.trac.wordpress.org/browser/media-cleaner/tags/7.0.3/classes/rest.php#L118","label":"plugins.trac.wordpress.org/browser/media-cleaner/tags/7.0.3/classes/rest.php","hostname":"plugins.trac.wordpress.org","tags":[]},{"url":"https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&n%20ew3492257%40media-cleaner%2Ftrunk&old=3447443%40media-cleaner%2Ftrunk&sfp_ema%20il=&sfph_mail=","label":"plugins.trac.wordpress.org/changeset","hostname":"plugins.trac.wordpress.org","tags":[]},{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/e9c9214d-45d4-4477-8244-7802a4901114","label":"www.wordfence.com/threat-intel/vulnerabilities/id/e9c9214d-45d4-4477-8244-7802a4901114","hostname":"www.wordfence.com","tags":["Vendor Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-07-28T18:35:52.515Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-07-28T19:37:49.185Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":16,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-19T22:20:11.880Z","stale":false,"partial":false}}