{"id":"CVE-2026-78392","kind":"vulnerability","aliases":["CVE-2026-78392"],"related":[],"title":"Link Library WordPress plugin: stored XSS through unescaped link preview field","description":"The Link Library WordPress plugin before 7.9.6 does not sanitise and escape a link field before outputting it inside an attribute of a link preview, allowing users with the Contributor role and above to perform Stored Cross-Site Scripting attacks. The preview is generated without authentication and without checking whether the link has been published, so an unapproved submission is enough to reach any visitor who opens it.","summary":"The Link Library WordPress plugin before 7.9.6 does not escape a link field when it is written into an attribute of a link preview. A user with the Contributor role can store a script there, and it runs in the browser of any visitor who opens the preview, even for unpublished submissions.","severity":"medium","cvss":6.8,"epss":0.00268,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["link-library","package","self-hosted","wordpress"],"not_affected_if":["no-contributor-accounts","plugin-version-7.9.6-or-later"],"how_to_check":"- Check the installed Link Library version in the WordPress admin plugins list or with `wp plugin get link-library --field=version`\n- Confirm whether the site accepts link submissions from Contributor accounts","fix":"- Update the Link Library plugin to `7.9.6` or later\n- Until updated, restrict Contributor submissions or disable the plugin's link preview feature if it can be turned off","status":"open","published_at":"2026-10-22T06:17:15+00:00","first_seen_at":"2026-10-23T21:57:30+00:00","triaged_at":"2026-10-25T03:42:50+00:00","updated_at":"2026-10-25T03:42:50+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:42:50Z","model":"claude-haiku-5-5","output":{"fix":"- Update the Link Library plugin to `7.9.6` or later\n- Until updated, restrict Contributor submissions or disable the plugin's link preview feature if it can be turned off","reach":"internet","title":"Link Library WordPress plugin: stored XSS through unescaped link preview field","impact":"medium","summary":"The Link Library WordPress plugin before 7.9.6 does not escape a link field when it is written into an attribute of a link preview. A user with the Contributor role can store a script there, and it runs in the browser of any visitor who opens the preview, even for unpublished submissions.","category":"package","nicknames":[],"who_cares":["wordpress","self-hosted","link-library"],"confidence":0.7,"needs_auth":"yes","worst_case":"Attacker script runs in visitors' browsers, stealing sessions or redirecting users","analyst_note":"Confirm the fixed version and whether the link preview is reachable by default, using the NVD entry at https://nvd.nist.gov/vuln/detail/CVE-2026-78392.","how_to_check":"- Check the installed Link Library version in the WordPress admin plugins list or with `wp plugin get link-library --field=version`\n- Confirm whether the site accepts link submissions from Contributor accounts","needs_analyst":true,"not_affected_if":["plugin-version-7.9.6-or-later","no-contributor-accounts"],"who_is_affected":"Sites running the Link Library plugin before `7.9.6` where contributors can submit links. The preview is reachable without login, so exposure depends on whether untrusted contributor input reaches the preview page. Sites without this plugin, or with it at `7.9.6` or later, can skip it.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000648,"input_tokens":3387,"output_tokens":619,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-78392':14A,17A '7.9.6':32B,84C 'allow':103C 'attack':118C 'attribut':45B,98C 'authent':124C 'browser':66B 'check':127C 'contributor':54B,107C 'cross':115C 'cross-sit':114C 'cve':12A,15A 'enough':139C 'escap':35B,89C 'even':74B 'field':11A,38B,92C 'generat':122C 'host':24B 'insid':96C 'librari':2A,20B,28B,80C 'link':1A,9A,19B,27B,37B,48B,79C,91C,101C,130C 'link-librari':18B 'open':71B,145C 'output':94C 'packag':21B 'perform':112C 'plugin':4A,30B,82C 'preview':10A,49B,73B,102C,120C 'publish':133C 'reach':141C 'role':55B,108C 'run':63B 'sanitis':87C 'script':59B,117C 'self':23B 'self-host':22B 'site':116C 'store':5A,57B,113C 'submiss':77B,137C 'unapprov':136C 'unescap':8A 'unpublish':76B 'user':51B,104C 'visitor':69B,143C 'whether':128C 'without':123C,126C 'wordpress':3A,25B,29B,81C 'written':42B 'xss':6A","nicknames":[],"mitigations":[],"who_affected":"Sites running the Link Library plugin before `7.9.6` where contributors can submit links. The preview is reachable without login, so exposure depends on whether untrusted contributor input reaches the preview page. Sites without this plugin, or with it at `7.9.6` or later, can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-22T06:17:15+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H","cvss_by":"134c704f-9b21-4f2e-91b3-4a467353bcc0","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-78392","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-78392","severity":null,"published_at":"2026-10-22T06:17:15+00:00","modified_at":"2026-10-22T15:16:14+00:00","first_seen_at":"2026-10-23T21:57:30+00:00","fetched_at":"2026-10-23T22:29:02+00:00","note":null},{"source":"epss","external_id":"CVE-2026-78392","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-78392","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T07:15:51+00:00","fetched_at":"2026-10-24T07:15:51+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}