[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f_UC6U-sY4cCDJwAMP1uoSDB_2PFwKcsi0Xeu6Nhyp_c":3,"$fXERK2U2UrDEGTy6tMwBcTFn5TVY_zRrnbNup2d_eUr4":170,"$fHogh0Rop1UhlbmvDyBIMBlYMIcjQcOMYWSPDQuofAao":174},{"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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"discovery_status":29,"vulnerabilities":30,"developer":31,"crawl_stats":27,"alternatives":37,"analysis":55,"fingerprints":151},"unused-media-scanner","Unused Media Scan & Delete","1.0.10","1WL Agency","https:\u002F\u002Fprofiles.wordpress.org\u002Fts1wl\u002F","\u003Cp>Unused Media Scan & Delete scans and lists unused files in your media library, so you can review and bulk delete them.\u003C\u002Fp>\n","Scan and delete unused media",10,1719,0,"2026-02-20T13:04:00.000Z","6.9.4","6.0","8.0",[19,20,21,22,23],"clean-media-library","delete-unused-images","media-scan-and-delete","media-scanner","scan-and-delete-images","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Funused-media-scanner\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Funused-media-scanner.1.0.10.zip",100,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":11,"avg_security_score":26,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"ts1wl",1,30,94,"2026-05-19T21:19:58.145Z",[38],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":13,"downloaded":46,"rating":13,"num_ratings":13,"last_updated":47,"tested_up_to":15,"requires_at_least":48,"requires_php":49,"tags":50,"homepage":49,"download_link":54,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"pro-uploads-cleaner","Pro Uploads Cleaner","1.0.0","Hemant Jodhani","https:\u002F\u002Fprofiles.wordpress.org\u002Fhemantjodhani\u002F","\u003Cp>Pro Uploads Cleaner compares your WordPress Media Library with the uploads folder and deletes files that don’t match, keeping your site clean and optimized.\u003C\u002Fp>\n","Scan and clean unused images from your WordPress uploads folder safely.",625,"2026-02-05T16:05:00.000Z","5.0","",[51,20,52,53],"cleaner","media-library","uploads","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpro-uploads-cleaner.1.0.0.zip",{"attackSurface":56,"codeSignals":89,"taintFlows":100,"riskAssessment":144,"analyzedAt":150},{"hooks":57,"ajaxHandlers":72,"restRoutes":85,"shortcodes":86,"cronEvents":87,"entryPointCount":88,"unprotectedCount":33},[58,64,68],{"type":59,"name":60,"callback":61,"file":62,"line":63},"action","admin_menu","EMSC_Unused_Media_Scanner_add_management_page","unused-media-scanner.php",91,{"type":59,"name":65,"callback":66,"file":62,"line":67},"admin_init","EMSC_Unused_Media_Scanner_load_textdomain",92,{"type":59,"name":69,"callback":70,"file":62,"line":71},"init","EMSC_register_scripts",97,[73,79,82],{"action":74,"nopriv":75,"callback":74,"hasNonce":76,"hasCapCheck":75,"file":77,"line":78},"EMSC_media_scanner",false,true,"includes\u002Fscanner\u002Fscanner-tools-functions.php",4,{"action":74,"nopriv":76,"callback":80,"hasNonce":75,"hasCapCheck":75,"file":77,"line":81},"EMSC_media_scanner_login",21,{"action":83,"nopriv":75,"callback":83,"hasNonce":76,"hasCapCheck":75,"file":77,"line":84},"EMSC_media_delete",673,[],[],[],3,{"dangerousFunctions":90,"sqlUsage":91,"outputEscaping":93,"fileOperations":13,"externalRequests":13,"nonceChecks":88,"capabilityChecks":13,"bundledLibraries":99},[],{"prepared":88,"raw":13,"locations":92},[],{"escaped":94,"rawEcho":33,"locations":95},78,[96],{"file":77,"line":97,"context":98},16,"raw output",[],[101,118,126,136],{"entryPoint":102,"graph":103,"unsanitizedCount":13,"severity":117},"EMSC_media_scanner (includes\u002Fscanner\u002Fscanner-tools-functions.php:6)",{"nodes":104,"edges":115},[105,110],{"id":106,"type":107,"label":108,"file":77,"line":109},"n0","source","$_REQUEST",12,{"id":111,"type":112,"label":113,"file":77,"line":97,"wp_function":114},"n1","sink","echo() [XSS]","echo",[116],{"from":106,"to":111,"sanitized":76},"low",{"entryPoint":119,"graph":120,"unsanitizedCount":13,"severity":117},"\u003Cscanner-tools-functions> (includes\u002Fscanner\u002Fscanner-tools-functions.php:0)",{"nodes":121,"edges":124},[122,123],{"id":106,"type":107,"label":108,"file":77,"line":109},{"id":111,"type":112,"label":113,"file":77,"line":97,"wp_function":114},[125],{"from":106,"to":111,"sanitized":76},{"entryPoint":127,"graph":128,"unsanitizedCount":13,"severity":117},"EMSC_Unused_Media_Scanner_management_page (unused-media-scanner.php:49)",{"nodes":129,"edges":134},[130,133],{"id":106,"type":107,"label":131,"file":62,"line":132},"$_GET['page'] (x4)",69,{"id":111,"type":112,"label":113,"file":62,"line":132,"wp_function":114},[135],{"from":106,"to":111,"sanitized":76},{"entryPoint":137,"graph":138,"unsanitizedCount":13,"severity":117},"\u003Cunused-media-scanner> (unused-media-scanner.php:0)",{"nodes":139,"edges":142},[140,141],{"id":106,"type":107,"label":131,"file":62,"line":132},{"id":111,"type":112,"label":113,"file":62,"line":132,"wp_function":114},[143],{"from":106,"to":111,"sanitized":76},{"summary":145,"deductions":146},"The unused-media-scanner v1.0.10 plugin demonstrates a generally good security posture, with strong practices in areas like SQL query preparation and output escaping, both nearing 100% compliance.  The absence of known vulnerabilities and critical taint analysis findings further contributes to this positive assessment.  However, a significant concern is the presence of one unprotected AJAX handler out of three total entry points. This unprotected handler represents a direct attack vector that could be exploited if it handles user-supplied input without proper validation or authentication.  While the plugin has no recorded vulnerability history, the existence of an unprotected entry point is a risk that should be addressed to maintain a robust security profile.",[147],{"reason":148,"points":149},"Unprotected AJAX handler found",8,"2026-04-16T12:03:38.108Z",{"wat":152,"direct":161},{"assetPaths":153,"generatorPatterns":156,"scriptPaths":157,"versionParams":158},[154,155],"\u002Fwp-content\u002Fplugins\u002Funused-media-scanner\u002Fassets\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Funused-media-scanner\u002Fassets\u002Fscript.js",[],[155],[159,160],"unused-media-scanner\u002Fassets\u002Fstyle.css?ver=","unused-media-scanner\u002Fassets\u002Fscript.js?ver=",{"cssClasses":162,"htmlComments":164,"htmlAttributes":165,"restEndpoints":167,"jsGlobals":168,"shortcodeOutput":169},[163],"nav-tab-active",[],[166],"EMSC_media_scanner_ajax",[],[166],[],{"error":76,"url":171,"statusCode":172,"statusMessage":173,"message":173},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Funused-media-scanner\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":175,"versions":176},6,[177,182,189,196,203,210],{"version":6,"download_url":25,"svn_tag_url":178,"released_at":27,"has_diff":75,"diff_files_changed":179,"diff_lines":27,"trac_diff_url":180,"vulnerabilities":181,"is_current":76},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Funused-media-scanner\u002Ftags\u002F1.0.10\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Funused-media-scanner%2Ftags%2F1.0.9&new_path=%2Funused-media-scanner%2Ftags%2F1.0.10",[],{"version":183,"download_url":184,"svn_tag_url":185,"released_at":27,"has_diff":75,"diff_files_changed":186,"diff_lines":27,"trac_diff_url":187,"vulnerabilities":188,"is_current":75},"1.0.9","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Funused-media-scanner.1.0.9.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Funused-media-scanner\u002Ftags\u002F1.0.9\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Funused-media-scanner%2Ftags%2F1.0.8&new_path=%2Funused-media-scanner%2Ftags%2F1.0.9",[],{"version":190,"download_url":191,"svn_tag_url":192,"released_at":27,"has_diff":75,"diff_files_changed":193,"diff_lines":27,"trac_diff_url":194,"vulnerabilities":195,"is_current":75},"1.0.8","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Funused-media-scanner.1.0.8.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Funused-media-scanner\u002Ftags\u002F1.0.8\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Funused-media-scanner%2Ftags%2F1.0.7&new_path=%2Funused-media-scanner%2Ftags%2F1.0.8",[],{"version":197,"download_url":198,"svn_tag_url":199,"released_at":27,"has_diff":75,"diff_files_changed":200,"diff_lines":27,"trac_diff_url":201,"vulnerabilities":202,"is_current":75},"1.0.7","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Funused-media-scanner.1.0.7.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Funused-media-scanner\u002Ftags\u002F1.0.7\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Funused-media-scanner%2Ftags%2F1.0.6&new_path=%2Funused-media-scanner%2Ftags%2F1.0.7",[],{"version":204,"download_url":205,"svn_tag_url":206,"released_at":27,"has_diff":75,"diff_files_changed":207,"diff_lines":27,"trac_diff_url":208,"vulnerabilities":209,"is_current":75},"1.0.6","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Funused-media-scanner.1.0.6.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Funused-media-scanner\u002Ftags\u002F1.0.6\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Funused-media-scanner%2Ftags%2F1.0.5&new_path=%2Funused-media-scanner%2Ftags%2F1.0.6",[],{"version":211,"download_url":212,"svn_tag_url":213,"released_at":27,"has_diff":75,"diff_files_changed":214,"diff_lines":27,"trac_diff_url":27,"vulnerabilities":215,"is_current":75},"1.0.5","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Funused-media-scanner.1.0.5.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Funused-media-scanner\u002Ftags\u002F1.0.5\u002F",[],[]]