[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fWFOroemfnIV7bKorAz4OZaBXFXz8G1F8aVxu6hpc-Mk":3,"$faXPVzBMGneeqRrb4ka4uOqp0ZpylDnaSJN2JGLWLUAI":389,"$fTITIdnWxAcKb1-X3saBXipO5SuGag4dvZ7LTSy0a690":393},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"discovery_status":31,"vulnerabilities":32,"developer":33,"crawl_stats":29,"alternatives":38,"analysis":134,"fingerprints":348},"my-post-list-with-offline-reading","My Posts List with Offline Browsing","2.0","rioloft","https:\u002F\u002Fprofiles.wordpress.org\u002Frioloft\u002F","\u003Cp>Upon plugin activation, an “Add to your list” link with a star is automatically added at the end of each post and page.\u003C\u002Fp>\n\u003Cp>Clicking this link will pop-out a list on the bottom right of the screen, and add the current post or page to the list.\u003C\u002Fp>\n\u003Cp>This list is saved via HTML5 storage to the browser so it will be available also in the future to the user.\u003C\u002Fp>\n\u003Cp>You can allow all users, or only logged users to perform some actions:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Sharing of the list via Facebook.\u003C\u002Fli>\n\u003Cli>One-click iPhone-ready Content download of the selected posts in the user list as a simple Web app,\u003Cbr \u002F>\nready for offline browsing via mobile devices\u003C\u002Fli>\n\u003Cli>Sharing of the list via email.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>You can see a working demo here:\u003Cbr \u002F>\nhttp:\u002F\u002Fwww.rioloft.com\u002Frio-guide\u002F\u003C\u002Fp>\n","Let users build a list of their favorite posts\u002Fpages from the site and share their list on Facebook, via E-Mail, or  download content as a Web-app for &hellip;",10,10353,92,5,"2013-06-11T06:36:00.000Z","3.5.2","3.0.1","",[20,21,22,23,24],"html5","list","mobile","pages","posts","http:\u002F\u002Fwww.rioloft.com\u002Frio-guide\u002Fwordpress-my-posts-plugin\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmy-post-list-with-offline-reading.2.0.zip",85,0,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},1,30,84,"2026-07-14T23:02:02.606Z",[39,59,80,100,117],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":28,"num_ratings":28,"last_updated":49,"tested_up_to":50,"requires_at_least":51,"requires_php":52,"tags":53,"homepage":57,"download_link":58,"security_score":47,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"easy-content-lists","Easy Content Lists","1.0.3","Razorfrog Web Design","https:\u002F\u002Fprofiles.wordpress.org\u002Frazorfrog\u002F","\u003Cp>Easy Content Lists is a WordPress plugin that offers a set of shortcodes for efficiently listing pages, posts, taxonomies, and tags on your WordPress site. It provides users with an easy way to display content hierarchically and stylishly, offering various filtering and styling options.\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>Use the following shortcodes to display lists on your WordPress site:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>[razorfrog_pages_list]\u003C\u002Fcode> – For listing pages.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[razorfrog_posts_list]\u003C\u002Fcode> – For listing posts.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[razorfrog_taxonomy_list]\u003C\u002Fcode> – For listing taxonomy terms.\u003C\u002Fli>\n\u003Cli>\u003Ccode>[razorfrog_tags_list]\u003C\u002Fcode> – For displaying tags in a cloud format.\u003C\u002Fli>\n\u003C\u002Ful>\n","Shortcodes for easily listing all your pages, posts, taxonomies, and tags.",100,2871,"2025-12-09T23:17:00.000Z","6.9.4","5.2","7.2",[54,23,24,55,56],"lists","tags","taxonomies","https:\u002F\u002Frazorfrog.com\u002Feasy-content-lists\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Feasy-content-lists.1.0.3.zip",{"slug":60,"name":61,"version":62,"author":63,"author_profile":64,"description":65,"short_description":66,"active_installs":67,"downloaded":68,"rating":47,"num_ratings":34,"last_updated":69,"tested_up_to":70,"requires_at_least":71,"requires_php":18,"tags":72,"homepage":78,"download_link":79,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"recently-updated-pages-and-posts","Recently Updated Pages and Posts","1.0.2","Corey Salzano","https:\u002F\u002Fprofiles.wordpress.org\u002Fsalzano\u002F","\u003Cp>This plugin displays a list of links to recently modified items in any WordPress widget area.\u003C\u002Fp>\n","Creates a sidebar widget that lists recently updated pages and posts including newly published items.",90,5488,"2022-04-13T18:04:00.000Z","5.9.13","2.8",[73,74,75,76,77],"list-pages","list-updated-pages","list-updated-posts","newest-posts","recent-updates","https:\u002F\u002Fgithub.com\u002Fcsalzano\u002Frecently-updated-pages-and-posts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Frecently-updated-pages-and-posts.1.0.2.zip",{"slug":81,"name":82,"version":83,"author":84,"author_profile":85,"description":86,"short_description":87,"active_installs":11,"downloaded":88,"rating":28,"num_ratings":28,"last_updated":89,"tested_up_to":70,"requires_at_least":90,"requires_php":18,"tags":91,"homepage":97,"download_link":98,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":99},"cc-list-posts","CC-List-Posts","1.0.1","Clearcode","https:\u002F\u002Fprofiles.wordpress.org\u002Fclearcodehq\u002F","\u003Cp>The CC-List-Posts plugin works out of the box.\u003Cbr \u002F>\nThere is no settings page for it.\u003Cbr \u002F>\nAfter activation you can start using \u003Ccode>wp_list_posts\u003C\u002Fcode> function and\u002For shortcode with the parameters listed below.\u003C\u002Fp>\n\u003Cp>\u003Cem>\u003Cstrong>Notice\u003C\u002Fstrong>: the plugin can be used with the \u003Ccode>wp_link_pages\u003C\u002Fcode> built-in functionality if you use \u003Ccode>pagination\u003C\u002Fcode> parameter with integer value.\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch4>Defaults\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>before\u003C\u002Fstrong>: (string) \u003Cul>,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>after\u003C\u002Fstrong>: (string) \u003C\u002Ful>,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>link_before\u003C\u002Fstrong>: (string) \u003Cem>empty string\u003C\u002Fem>,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>link_after\u003C\u002Fstrong>: (string) \u003Cem>empty string\u003C\u002Fem>,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>type\u003C\u002Fstrong>: (string) postbypost,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>echo\u003C\u002Fstrong>: (integer) 0,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>pagination\u003C\u002Fstrong>: (boolean|integer) false,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>format\u003C\u002Fstrong>: (string) html\u003C\u002Fli>\n\u003Cli>\u003Cstrong>type\u003C\u002Fstrong>: (string) monthly,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>limit\u003C\u002Fstrong>: (string) \u003Cem>empty string\u003C\u002Fem>,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>show_post_count\u003C\u002Fstrong>: (boolean) false,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>order\u003C\u002Fstrong>: (string) DESC,\u003C\u002Fli>\n\u003Cli>\u003Cstrong>post_type\u003C\u002Fstrong>: (string) post\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>\u003Cstrong>Notice\u003C\u002Fstrong>: plugin uses \u003Ccode>wp_get_archives\u003C\u002Fcode> function to list posts, so you can also use additional parameters. A full list is available at WordPress \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FFunction_Reference\u002Fwp_get_archives\" rel=\"nofollow ugc\">codex\u003C\u002Fa> page documentation.\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch4>wp_list_posts parameter mapped to wp_get_archives\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>link_before\u003C\u002Fstrong>: before\u003C\u002Fli>\n\u003Cli>\u003Cstrong>link_after\u003C\u002Fstrong>: after\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Default usage\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Function\u003C\u002Fstrong>: \u003Ccode>wp_list_posts( array( 'pagination' => 50 ) )\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcode\u003C\u002Fstrong>: \u003Ccode>[wp_list_posts pagination=50]\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n","This plugin adds similar to wp_list_pages, missing function and shortcode wp_list_posts with pagination support.",1507,"2022-03-16T14:37:00.000Z","4.7",[92,93,94,95,96],"pagination","shortcode","wp_get_archives","wp_list_pages","wp_list_posts","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fcc-list-posts","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcc-list-posts.zip","2026-04-06T09:54:40.288Z",{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":11,"downloaded":108,"rating":28,"num_ratings":28,"last_updated":109,"tested_up_to":110,"requires_at_least":111,"requires_php":18,"tags":112,"homepage":115,"download_link":116,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":99},"display-posts-shortcode-current-page-custom-field-add-on","Display Posts Shortcode, Current Page Custom Field Add-On","1.0","Itamar Ostricher","https:\u002F\u002Fprofiles.wordpress.org\u002Fitamaro\u002F","\u003Cp>Usage:\u003Cbr \u002F>\nWhen using the display-posts shortcode plugin with the \u003Ccode>meta_key=\"custom_field_name\"\u003C\u002Fcode> and \u003Ccode>meta_value=\"current\"\u003C\u002Fcode> to list all posts that have the ID of the current page as the value of the specified custom field, add the \u003Ccode>meta_is_id=\"true\"\u003C\u002Fcode> to convert “current” to the correct ID.\u003C\u002Fp>\n","Convert \"current\" as the current page ID when using the display posts shortcode to query custom fields.",1627,"2014-10-09T20:10:00.000Z","4.0.38","3.0",[113,21,114,23,24],"display","page","https:\u002F\u002Fgithub.com\u002Fitamaro\u002Fdps-currrent-page-custom-field-addon","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdisplay-posts-shortcode-current-page-custom-field-add-on.zip",{"slug":118,"name":119,"version":120,"author":121,"author_profile":122,"description":123,"short_description":124,"active_installs":11,"downloaded":125,"rating":47,"num_ratings":34,"last_updated":126,"tested_up_to":127,"requires_at_least":128,"requires_php":18,"tags":129,"homepage":132,"download_link":133,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":99},"fast-post-lists","Fast Post Lists","0.7.1","Arthur Yarwood","https:\u002F\u002Fprofiles.wordpress.org\u002Farfa_\u002F","\u003Cp>Fast Post Lists provides additional shortcodes to include a list of posts within another post or page.\u003Cbr \u002F>\nKey features are:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Filter posts by a search query\u003C\u002Fli>\n\u003Cli>Filter posts by category, via an inclusion or exclusion list of categories\u003C\u002Fli>\n\u003Cli>Filter posts by tag, via an inclusion or exclusion list of tags\u003C\u002Fli>\n\u003Cli>Order posts by a post field of your choice\u003C\u002Fli>\n\u003Cli>Limit the number in the list, e.g. to show the 10 most recent posts\u003C\u002Fli>\n\u003Cli>Group posts by category or tag, with subheadings displayed for the category or tag\u003C\u002Fli>\n\u003Cli>Full control to configure list CSS styles, HTML per post and HTML at the start and end\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Shortcode Usage\u003C\u002Fh3>\n\u003Cp>The shortcode to use in your posts or pages is:\u003C\u002Fp>\n\u003Cp>[fu_postlist]\u003C\u002Fp>\n\u003Cp>By default, this will query all posts and sort by post title.\u003C\u002Fp>\n\u003Cp>Below are some examples of how each of the parameters can be used:\u003C\u002Fp>\n\u003Ch3>List only posts that match the search keyword ‘stuff’\u003C\u002Fh3>\n\u003Cp>[fu_postlist search=’stuff’]\u003C\u002Fp>\n\u003Ch3>List only posts that match the search keyword ‘stuff’ but don’t have the keyword ‘rubbish’\u003C\u002Fh3>\n\u003Cp>[fu_postlist search=’stuff -rubbish’]\u003C\u002Fp>\n\u003Ch3>List only posts within the single category ‘Spiders’\u003C\u002Fh3>\n\u003Cp>[fu_postlist cat=’Spiders’]\u003C\u002Fp>\n\u003Cp>A single category can be listed by name or by id.\u003C\u002Fp>\n\u003Ch3>List posts within the categories Spiders or Dogs\u003C\u002Fh3>\n\u003Cp>[fu_postlist cat=’Spiders,Dogs’]\u003C\u002Fp>\n\u003Ch3>List posts within the categories Spiders and Dogs\u003C\u002Fh3>\n\u003Cp>[fu_postlist cat=’Spiders+Dogs’]\u003C\u002Fp>\n\u003Ch3>List posts not within the categories 10 or 12\u003C\u002Fh3>\n\u003Cp>[fu_postlist notcat=’10,12’]\u003C\u002Fp>\n\u003Cp>Categories to exclude must be listed as a comma-separated list of id’s.\u003C\u002Fp>\n\u003Ch3>List posts with either the tags ‘rain’ or ‘shine’\u003C\u002Fh3>\n\u003Cp>[fu_postlist tag=’rain,shine’]\u003C\u002Fp>\n\u003Ch3>List posts with both the tags ‘heavy’ and ‘metal’\u003C\u002Fh3>\n\u003Cp>[fu_postlist tag=’heavy+metal’]\u003C\u002Fp>\n\u003Ch3>List posts without the tag ‘trouble’\u003C\u002Fh3>\n\u003Cp>[fu_postlist nottag=’trouble’]\u003C\u002Fp>\n\u003Ch3>Limit the number of posts listed to 10\u003C\u002Fh3>\n\u003Cp>[fu_postlist maxposts=10]\u003C\u002Fp>\n\u003Cp>A value of -1 or the parameter omitted entirely means all.\u003C\u002Fp>\n\u003Ch3>Group posts by category. The category name will be inserted as a subheading at the start of the group\u003C\u002Fh3>\n\u003Cp>[fu_postlist groupby=cat]\u003C\u002Fp>\n\u003Ch3>Group posts by tag\u003C\u002Fh3>\n\u003Cp>[fu_postlist groupby=tag]\u003C\u002Fp>\n\u003Ch3>Order posts by post title (default behavior)\u003C\u002Fh3>\n\u003Cp>[fu_postlist orderby=’title’]\u003Cbr \u002F>\nHowever, you may order by ‘ID’, ‘author’, ‘name’ (post slug), ‘date’, ‘rand’ etc.\u003C\u002Fp>\n\u003Cp>Of course, you can mix and match many of these parameters to your heart’s content.\u003C\u002Fp>\n","Provide shortcodes to display a filtered list of posts, grouped by category\u002Ftag, with optional thumbnails.",4416,"2024-12-18T17:50:00.000Z","6.7.5","4.6",[130,131,21,23,24],"contents","index","http:\u002F\u002Fwww.fubaby.com\u002Fwordpress-plugins\u002Ffast-post-lists\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffast-post-lists.0.7.1.zip",{"attackSurface":135,"codeSignals":169,"taintFlows":245,"riskAssessment":332,"analyzedAt":347},{"hooks":136,"ajaxHandlers":165,"restRoutes":166,"shortcodes":167,"cronEvents":168,"entryPointCount":28,"unprotectedCount":28},[137,142,148,152,156,160],{"type":138,"name":139,"callback":140,"file":141,"line":36},"filter","wp_mail_content_type","mpl_set_html_content_type","email_post_list.php",{"type":143,"name":144,"callback":145,"file":146,"line":147},"action","wp_enqueue_scripts","mpl_add_jquery_script","my-posts-list.php",37,{"type":143,"name":149,"callback":150,"file":146,"line":151},"wp_footer","mpl_add_my_list_to_footer",195,{"type":138,"name":153,"callback":154,"file":146,"line":155},"the_content","mpl_add_post_adding_link",216,{"type":143,"name":157,"callback":158,"file":146,"line":159},"wp_loaded","mpl_check_action_to_do",221,{"type":143,"name":161,"callback":162,"file":163,"line":164},"admin_menu","mpl_admin_menu","option-page.php",3,[],[],[],[],{"dangerousFunctions":170,"sqlUsage":175,"outputEscaping":177,"fileOperations":28,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":244},[171],{"fn":172,"file":173,"line":11,"context":174},"preg_replace(\u002Fe)","mobile\u002Fmobile_post_list.php","preg_replace (\"\u002F\\[(\\S+)\\]\u002Fe\"",{"prepared":28,"raw":28,"locations":176},[],{"escaped":164,"rawEcho":178,"locations":179},35,[180,183,185,187,189,191,193,195,197,198,200,201,203,205,206,208,210,212,214,216,218,220,222,224,226,228,229,231,233,235,236,237,238,240,242],{"file":141,"line":181,"context":182},32,"raw output",{"file":173,"line":184,"context":182},34,{"file":173,"line":186,"context":182},39,{"file":173,"line":188,"context":182},51,{"file":173,"line":190,"context":182},60,{"file":173,"line":192,"context":182},77,{"file":173,"line":194,"context":182},79,{"file":173,"line":196,"context":182},82,{"file":173,"line":196,"context":182},{"file":173,"line":199,"context":182},99,{"file":173,"line":47,"context":182},{"file":173,"line":202,"context":182},102,{"file":173,"line":204,"context":182},103,{"file":173,"line":204,"context":182},{"file":173,"line":207,"context":182},105,{"file":173,"line":209,"context":182},112,{"file":173,"line":211,"context":182},114,{"file":173,"line":213,"context":182},128,{"file":173,"line":215,"context":182},131,{"file":146,"line":217,"context":182},21,{"file":146,"line":219,"context":182},61,{"file":146,"line":221,"context":182},64,{"file":146,"line":223,"context":182},67,{"file":146,"line":225,"context":182},265,{"file":163,"line":227,"context":182},25,{"file":163,"line":147,"context":182},{"file":163,"line":230,"context":182},52,{"file":163,"line":232,"context":182},53,{"file":163,"line":234,"context":182},73,{"file":163,"line":234,"context":182},{"file":163,"line":67,"context":182},{"file":163,"line":67,"context":182},{"file":163,"line":239,"context":182},117,{"file":163,"line":241,"context":182},118,{"file":163,"line":243,"context":182},132,[],[246,298,309],{"entryPoint":247,"graph":248,"unsanitizedCount":296,"severity":297},"mpl_options_page_create (option-page.php:12)",{"nodes":249,"edges":288},[250,254,259,262,266,270,272,276,278,281,283,286],{"id":251,"type":252,"label":253,"file":163,"line":227},"n0","source","$_POST['mpl_enable_email_send']",{"id":255,"type":256,"label":257,"file":163,"line":227,"wp_function":258},"n1","sink","echo() [XSS]","echo",{"id":260,"type":252,"label":253,"file":163,"line":261},"n2",26,{"id":263,"type":256,"label":264,"file":163,"line":261,"wp_function":265},"n3","update_option() [Settings Manipulation]","update_option",{"id":267,"type":252,"label":268,"file":163,"line":269},"n4","$_POST['mpl_enable_facebook_share']",27,{"id":271,"type":256,"label":264,"file":163,"line":269,"wp_function":265},"n5",{"id":273,"type":252,"label":274,"file":163,"line":275},"n6","$_POST['mpl_enable_mobile']",29,{"id":277,"type":256,"label":264,"file":163,"line":275,"wp_function":265},"n7",{"id":279,"type":252,"label":280,"file":163,"line":35},"n8","$_POST['mpl_mobile_about_content']",{"id":282,"type":256,"label":264,"file":163,"line":35,"wp_function":265},"n9",{"id":284,"type":252,"label":285,"file":163,"line":147},"n10","$_SERVER['REQUEST_URI']",{"id":287,"type":256,"label":257,"file":163,"line":147,"wp_function":258},"n11",[289,291,292,293,294,295],{"from":251,"to":255,"sanitized":290},false,{"from":260,"to":263,"sanitized":290},{"from":267,"to":271,"sanitized":290},{"from":273,"to":277,"sanitized":290},{"from":279,"to":282,"sanitized":290},{"from":284,"to":287,"sanitized":290},6,"medium",{"entryPoint":299,"graph":300,"unsanitizedCount":28,"severity":308},"\u003Cmobile_post_list> (mobile\u002Fmobile_post_list.php:0)",{"nodes":301,"edges":305},[302,304],{"id":251,"type":252,"label":303,"file":173,"line":184},"$_GET['posts']",{"id":255,"type":256,"label":257,"file":173,"line":184,"wp_function":258},[306],{"from":251,"to":255,"sanitized":307},true,"low",{"entryPoint":310,"graph":311,"unsanitizedCount":296,"severity":308},"\u003Coption-page> (option-page.php:0)",{"nodes":312,"edges":325},[313,314,315,316,317,318,319,320,321,322,323,324],{"id":251,"type":252,"label":253,"file":163,"line":227},{"id":255,"type":256,"label":257,"file":163,"line":227,"wp_function":258},{"id":260,"type":252,"label":253,"file":163,"line":261},{"id":263,"type":256,"label":264,"file":163,"line":261,"wp_function":265},{"id":267,"type":252,"label":268,"file":163,"line":269},{"id":271,"type":256,"label":264,"file":163,"line":269,"wp_function":265},{"id":273,"type":252,"label":274,"file":163,"line":275},{"id":277,"type":256,"label":264,"file":163,"line":275,"wp_function":265},{"id":279,"type":252,"label":280,"file":163,"line":35},{"id":282,"type":256,"label":264,"file":163,"line":35,"wp_function":265},{"id":284,"type":252,"label":285,"file":163,"line":147},{"id":287,"type":256,"label":257,"file":163,"line":147,"wp_function":258},[326,327,328,329,330,331],{"from":251,"to":255,"sanitized":290},{"from":260,"to":263,"sanitized":290},{"from":267,"to":271,"sanitized":290},{"from":273,"to":277,"sanitized":290},{"from":279,"to":282,"sanitized":290},{"from":284,"to":287,"sanitized":290},{"summary":333,"deductions":334},"The plugin \"my-post-list-with-offline-reading\" v2.0 exhibits a mixed security posture. On the positive side, it has a very small attack surface with zero identified entry points (AJAX, REST API, shortcodes, cron events) that lack authentication or permission checks. Furthermore, all its SQL queries are properly prepared, and there are no file operations or external HTTP requests, which are common vectors for vulnerabilities. The absence of any recorded vulnerability history is also a strong positive indicator.\n\nHowever, there are significant concerns within the code analysis. The presence of a dangerous function (preg_replace(\u002Fe)) is a red flag, as this function can lead to arbitrary code execution if not handled with extreme care. Additionally, a very low percentage of output escaping (8%) suggests that a substantial portion of the plugin's output is not properly sanitized, potentially exposing users to cross-site scripting (XSS) attacks. The taint analysis indicates two flows with unsanitized paths, although thankfully no critical or high severity issues were found there. The complete lack of nonce checks and capability checks on all entry points (even though there are none listed) is a fundamental security oversight that could become a problem if new entry points are added without proper security considerations.\n\nIn conclusion, while the plugin currently presents a low external attack surface and has a clean vulnerability history, the identified code-level weaknesses, particularly the dangerous function usage and poor output escaping, introduce significant internal risks. The lack of robust security checks like nonces and capability checks, even on a seemingly secure code base, indicates a lack of defensive programming practices that could be exploited if vulnerabilities are introduced in future updates. The risk is moderate, leaning towards higher due to the potential for XSS and code execution.",[335,338,341,343,345],{"reason":336,"points":337},"Dangerous function preg_replace(\u002Fe) found",15,{"reason":339,"points":340},"Low output escaping percentage (8%)",8,{"reason":342,"points":14},"Flows with unsanitized paths found",{"reason":344,"points":14},"Missing nonce checks",{"reason":346,"points":14},"Missing capability checks","2026-04-16T12:37:40.157Z",{"wat":349,"direct":358},{"assetPaths":350,"generatorPatterns":353,"scriptPaths":354,"versionParams":355},[351,352],"\u002Fwp-content\u002Fplugins\u002Fmy-post-list-with-offline-reading\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Fmy-post-list-with-offline-reading\u002Fplugin-engine.js",[],[352],[356,357],"my-post-list-with-offline-reading\u002Fstyle.css?ver=","my-post-list-with-offline-reading\u002Fplugin-engine.js?ver=",{"cssClasses":359,"htmlComments":363,"htmlAttributes":364,"restEndpoints":367,"jsGlobals":368,"shortcodeOutput":371},[360,361,362],"add-to-post-list","mpl-list-action-trigger","mpl-send-label",[],[365,366],"data-postid","data-posttitle",[],[369,370],"localObj","localStorage",[372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388],"\u003Cdiv id=\"view-your-list\">\u003Ca href=\"#\">View Your List\u003C\u002Fa>\u003C\u002Fdiv>","\u003Cdiv id=\"your-posts-list-container\">","\u003Cdiv id=\"mpl-actions-container\">","\u003Cdiv id=\"mpl-about-list-div\">","\u003Cdiv id=\"your-posts-list\">","\u003Ca class=\"mpl-list-action-trigger\" href=\"#\" id=\"download-post-list-as-pdf\" target=\"_blank\">PDF\u002FDocs\u003C\u002Fa>","\u003Ca class=\"mpl-list-action-trigger\" href=\"#\" id=\"download-post-list-as-email\" target=\"_blank\">Send via Email... \u003C\u002Fa>","\u003Ca class=\"mpl-list-action-trigger\" target=\"_blank\" id=\"send-post-list-to-facebook\"  data-href=\"http:\u002F\u002Fwww.facebook.com\u002Fsharer\u002Fsharer.php?u=","\u003Ca class=\"mpl-list-action-trigger\" href=\"#\" id=\"download-post-list-as-web-app\" target=\"_blank\">Mobile App for your iPhone\u002FAndroid device\u003C\u002Fa>","\u003Cdiv id=\"send-email-list-div-opaque-layer\" >\u003C\u002Fdiv>","\u003Cdiv id=\"send-email-list-div\" >","\u003Ch2 id=\"mpl-send-h2\">Send your list to a friend\u003C\u002Fh2>","\u003Cinput type=\"text\" name=\"your-email-field\" id=\"your-email-field\">","\u003Cinput type=\"text\" name=\"your-friend-email-field\" id=\"your-friend-email-field\">","\u003Ctextarea  maxlength=\"70\" name=\"mplist-message-field\" id=\"mplist-message-field\">Hi, these are some selected posts that I have picked for you to read.\u003C\u002Ftextarea>","\u003Cdiv id=\"mpl-email-list-action-result\" >\u003C\u002Fdiv>","\u003Ca href=\"#\" id=\"trigger-list-send-to-email\">Send\u003C\u002Fa>",{"error":307,"url":390,"statusCode":391,"statusMessage":392,"message":392},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fmy-post-list-with-offline-reading\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":394,"versions":395},2,[396,401],{"version":6,"download_url":26,"svn_tag_url":397,"released_at":29,"has_diff":290,"diff_files_changed":398,"diff_lines":29,"trac_diff_url":399,"vulnerabilities":400,"is_current":307},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fmy-post-list-with-offline-reading\u002Ftags\u002F2.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fmy-post-list-with-offline-reading%2Ftags%2F1.0&new_path=%2Fmy-post-list-with-offline-reading%2Ftags%2F2.0",[],{"version":103,"download_url":402,"svn_tag_url":403,"released_at":29,"has_diff":290,"diff_files_changed":404,"diff_lines":29,"trac_diff_url":29,"vulnerabilities":405,"is_current":290},"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmy-post-list-with-offline-reading.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fmy-post-list-with-offline-reading\u002Ftags\u002F1.0\u002F",[],[]]