{"schemaVersion":3,"id":"CVE-2026-78394","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"The Link Library WordPress plugin before 7.9.6 does not sanitize a user-supplied destination folder before writing a generated image to disk, allowing users with the Contributor role and above to create directories and write or overwrite image files anywhere the web server can write, including outside the site's document root.\n\nThe written file name is always numeric with a fixed image extension, so executable code cannot be planted this way.","dates":{"published":"2026-09-25T06:00:19.665Z","modified":"2026-09-25T12:40:02.907Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":4.3,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"wordfence","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/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:N/I:L/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:N/I:L/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"wordfence","score":4.3,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.0024,"percentile":0.14151,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":null,"baselineDate":null,"baselineScore":null},"history":[{"date":"2026-09-25T00:00:00.000Z","score":0.00157,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0024,"percentile":0.14151}],"last30":[{"date":"2026-09-25T00:00:00.000Z","score":0.00157,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0024,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0024,"percentile":0.14151}]},"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":[{"id":"REF_086BBF747CAF4812","name":"Exploit Reference (wpscan.com)","source":"reference","url":"https://wpscan.com/vulnerability/9da07b4f-5332-4ba5-8a34-6f2ed303b62c/","maturity":"unknown","reliabilityScore":0.2,"verified":false,"type":null,"platforms":[],"requiresAuth":null,"exploitdb":null,"metasploit":null}],"exploitCount":1,"weaknesses":[{"id":"CWE-22","name":"Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","description":"The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/22.html"}],"affected":[{"vendor":"unknown","product":"link library","name":"Link Library","label":"link library","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 7.9.6","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 7.9.6","eol":null,"hubHref":"/vendor/unknown/link_library"},{"vendor":"wordpress","product":"link-library","name":"Link Library","label":"link-library","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≤ 7.9.5 (fixed in 7.9.6)","noFixRecorded":false,"fixedIn":"7.9.6"}],"versionsText":"≤ 7.9.5 (fixed in 7.9.6)","eol":null,"hubHref":null}],"affectedCount":2,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://wpscan.com/vulnerability/9da07b4f-5332-4ba5-8a34-6f2ed303b62c/","label":"wpscan.com/vulnerability/9da07b4f-5332-4ba5-8a34-6f2ed303b62c/","hostname":"wpscan.com","tags":["Exploit","VDB Entry","Technical Description"]},{"url":"https://www.wordfence.com/threat-intel/vulnerabilities/id/f7f87d80-d073-4dc7-9d1f-3ce9bb4ba9ae","label":"www.wordfence.com/threat-intel/vulnerabilities/id/f7f87d80-d073-4dc7-9d1f-3ce9bb4ba9ae","hostname":"www.wordfence.com","tags":["Vendor Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-09-25T06:00:19.665Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-09-25T12:40:02.907Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":27,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T15:34:11.341Z","stale":false,"partial":false}}