{"id":"CVE-2026-118189","kind":"vulnerability","aliases":["CVE-2026-118189"],"related":[],"title":"WordPress Posts Table plugin: contributors can inject scripts via date format","description":"The Posts Table with Search & Sort plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'date_format' parameter in all versions up to, and including, 1.4.14 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. The payload bypasses wp_kses_post at save time because it contains no literal angle bracket characters; the malicious HTML tags are only reconstructed at render time, making this exploitable by Contributors who would ordinarily lack the unfiltered_html capability.","summary":"The Posts Table with Search & Sort WordPress plugin up to version 1.4.14 fails to sanitize the date_format parameter, so a contributor-level user can store a payload that is rebuilt into HTML when a page renders. Visitors who open the injected page run the attacker's script in their browser.","severity":"medium","cvss":6.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","posts-table-search-sort","wordpress","wordpress-plugin"],"not_affected_if":["only-trusted-editors","plugin-above-1.4.14","plugin-not-installed"],"how_to_check":"- Check the installed version of the Posts Table with Search & Sort plugin in the WordPress admin plugin list, or the plugin header in `wp-content/plugins/`\n- Look for the plugin's version at or below `1.4.14`","fix":null,"status":"open","published_at":"2026-11-06T09:17:00+00:00","first_seen_at":"2026-11-06T09:40:32+00:00","triaged_at":"2026-11-06T09:40:47+00:00","updated_at":"2026-11-06T09:40:47+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-06T09:40:47Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"network","title":"WordPress Posts Table plugin: contributors can inject scripts via date format","impact":"medium","summary":"The Posts Table with Search & Sort WordPress plugin up to version 1.4.14 fails to sanitize the date_format parameter, so a contributor-level user can store a payload that is rebuilt into HTML when a page renders. Visitors who open the injected page run the attacker's script in their browser.","audience":"businesses","category":"package","nicknames":[],"who_cares":["wordpress","wordpress-plugin","posts-table-search-sort"],"confidence":0.7,"fix_status":"unknown","needs_auth":"yes","worst_case":"Attacker script runs in visitors' browsers on the site, stealing sessions","analyst_note":"","how_to_check":"- Check the installed version of the Posts Table with Search & Sort plugin in the WordPress admin plugin list, or the plugin header in `wp-content/plugins/`\n- Look for the plugin's version at or below `1.4.14`","plain_action":"","needs_analyst":false,"not_affected_if":["plugin-not-installed","only-trusted-editors","plugin-above-1.4.14"],"who_is_affected":"Sites running the Posts Table with Search & Sort plugin at version 1.4.14 or earlier where contributors can create or edit pages. The risk comes from the date_format setting being rendered into pages without escaping. Sites without the plugin, or where only trusted editors can write content, are less exposed.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000716,"input_tokens":4358,"output_tokens":561,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-118189':14A,17A '-2026':13A,16A '1.4.14':39B,109C 'access':129C,145C 'angl':163C 'arbitrari':134C 'attack':74B,124C 'authent':123C 'bracket':164C 'browser':79B 'bypass':151C 'capabl':188C 'charact':165C 'contain':160C 'contributor':5A,50B,127C,180C 'contributor-level':49B,126C 'cross':94C 'cross-sit':93C 'cve':12A,15A 'date':10A,44B,99C 'due':110C 'escap':117C 'execut':141C 'exploit':178C 'fail':40B 'format':11A,45B,100C 'html':61B,168C,187C 'includ':108C 'inject':7A,70B,133C,147C 'input':113C 'insuffici':112C 'kses':153C 'lack':184C 'level':51B,128C 'liter':162C 'make':119C,176C 'malici':167C 'open':68B 'ordinarili':183C 'output':116C 'packag':18B 'page':64B,71B,138C,148C 'paramet':46B,101C 'payload':56B,150C 'plugin':4A,27B,35B,86C 'possibl':121C 'post':2A,20B,29B,81C,154C 'posts-table-search-sort':19B 'rebuilt':59B 'reconstruct':172C 'render':65B,174C 'run':72B 'sanit':42B,114C 'save':156C 'script':8A,76B,96C,136C 'search':22B,32B,84C 'site':95C 'sort':23B,33B,85C 'store':54B,92C 'tabl':3A,21B,30B,82C 'tag':169C 'time':157C,175C 'unfilt':186C 'user':52B,144C 'version':38B,104C 'via':9A,97C 'visitor':66B 'vulner':90C 'web':135C 'whenev':142C 'wordpress':1A,24B,26B,34B,88C 'wordpress-plugin':25B 'would':182C 'wp':152C","nicknames":[],"mitigations":[],"who_affected":"Sites running the Posts Table with Search & Sort plugin at version 1.4.14 or earlier where contributors can create or edit pages. The risk comes from the date_format setting being rendered into pages without escaping. Sites without the plugin, or where only trusted editors can write content, are less exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["medium","package","poststablesearchsort","wordpress","wordpressplugin"],"campaign_type":null,"search_a":"'-118189':14A,17A '-2026':13A,16A 'contributor':5A 'cve':12A,15A 'date':10A 'format':11A 'inject':7A 'plugin':4A 'post':2A 'script':8A 'tabl':3A 'via':9A 'wordpress':1A","search_b":"'1.4.14':39B 'attack':74B 'browser':79B 'contributor':50B 'contributor-level':49B 'date':44B 'fail':40B 'format':45B 'html':61B 'inject':70B 'level':51B 'open':68B 'packag':18B 'page':64B,71B 'paramet':46B 'payload':56B 'plugin':27B,35B 'post':20B,29B 'posts-table-search-sort':19B 'rebuilt':59B 'render':65B 'run':72B 'sanit':42B 'script':76B 'search':22B,32B 'sort':23B,33B 'store':54B 'tabl':21B,30B 'user':52B 'version':38B 'visitor':66B 'wordpress':24B,26B,34B 'wordpress-plugin':25B","search_c":"'1.4.14':109C 'access':129C,145C 'angl':163C 'arbitrari':134C 'attack':124C 'authent':123C 'bracket':164C 'bypass':151C 'capabl':188C 'charact':165C 'contain':160C 'contributor':127C,180C 'contributor-level':126C 'cross':94C 'cross-sit':93C 'date':99C 'due':110C 'escap':117C 'execut':141C 'exploit':178C 'format':100C 'html':168C,187C 'includ':108C 'inject':133C,147C 'input':113C 'insuffici':112C 'kses':153C 'lack':184C 'level':128C 'liter':162C 'make':119C,176C 'malici':167C 'ordinarili':183C 'output':116C 'page':138C,148C 'paramet':101C 'payload':150C 'plugin':86C 'possibl':121C 'post':81C,154C 'reconstruct':172C 'render':174C 'sanit':114C 'save':156C 'script':96C,136C 'search':84C 'site':95C 'sort':85C 'store':92C 'tabl':82C 'tag':169C 'time':157C,175C 'unfilt':186C 'user':144C 'version':104C 'via':97C 'vulner':90C 'web':135C 'whenev':142C 'wordpress':88C 'would':182C 'wp':152C","first_public_at":"2026-11-06T09:17:00+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:N","cvss_by":"security@wordfence.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-118189","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-118189","severity":null,"published_at":"2026-11-06T09:17:00+00:00","modified_at":"2026-11-06T09:17:00+00:00","first_seen_at":"2026-11-06T09:40:32+00:00","fetched_at":"2026-11-06T09:40:32+00:00","note":null}],"documents":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}