[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fmayDGKPwEYGnl8puQSfCgG___zg_GSlCmHfRRMzhjlI":3,"$fhqa-UUynwZon2ysrGtGTwHnECQD7A0E0c1GwpT2-jks":262,"$f-QWFMiSx6H6rEJ2jV55WCtGU-Yzj0JrwVKV05qxPGtk":267},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":6,"requires_php":15,"tags":16,"homepage":20,"download_link":21,"security_score":22,"vuln_count":11,"unpatched_count":11,"last_vuln_date":23,"fetched_at":24,"discovery_status":25,"vulnerabilities":26,"developer":27,"crawl_stats":23,"alternatives":34,"analysis":55,"fingerprints":245},"advanced-slug-translate","Advanced Slug Translate","1.0","Than Minh Tu","https:\u002F\u002Fprofiles.wordpress.org\u002Fthanminhtu\u002F","\u003Cp>The plugin supports the conversion slug of page, post slug, more user-friendly categoy.\u003C\u002Fp>\n\u003Cp>For example, Greek: γιατί-το-χρησιμοποιούμε —> giati-to-xrhsimopoioyme.\u003C\u002Fp>\n\u003Cp>Support language :\u003Cbr \u002F>\n– Arabic\u003Cbr \u002F>\n– Bulgarian\u003Cbr \u002F>\n– Czech\u003Cbr \u002F>\n– German\u003Cbr \u002F>\n– Greek\u003Cbr \u002F>\n– Persian\u003Cbr \u002F>\n– Kazakh\u003Cbr \u002F>\n– Russian\u003Cbr \u002F>\n– Turkish\u003Cbr \u002F>\n– Ukrainian\u003C\u002Fp>\n","The plugin supports the conversion slug of page, post slug, more user-friendly categoy. For example, Greek: γιατί-το-χρησιμοποιούμε ---> giati-to-x &hellip;",0,1722,"2019-10-03T07:59:00.000Z","4.8.28","5.4",[17,18,19],"edit-slug","slug-translate","translate-slug","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadvanced-slug-translate.zip",85,null,"2026-07-22T17:31:50.256Z","no_bundle",[],{"slug":28,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":30,"avg_security_score":22,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},"thanminhtu",3,70,30,84,"2026-08-29T22:07:40.863Z",[35],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":11,"downloaded":43,"rating":11,"num_ratings":11,"last_updated":44,"tested_up_to":45,"requires_at_least":46,"requires_php":47,"tags":48,"homepage":20,"download_link":54,"security_score":22,"vuln_count":11,"unpatched_count":11,"last_vuln_date":23,"fetched_at":24},"custom-post-type-multiroutes","Custom Post Type Multiroutes","0.1.2","arg82","https:\u002F\u002Fprofiles.wordpress.org\u002Farg82\u002F","\u003Cp>Custom Post Type Multiroutes allows you to manage, add, edit and update multiple routes for your Custom Post Types.\u003Cbr \u002F>\nMinimum configuration needed. Install it, type your routes for your posts and refresh permalinks.\u003C\u002Fp>\n\u003Ch3>Use case\u003C\u002Fh3>\n\u003Cp>Say you have a custom post type called ‘Galleries’ and you want it to appear on two archive pages:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002Fnews\u002Fgallery\u002F\n\u002Fmedia\u002Falbum\u002F\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>And its single pages to be: \u003Ccode>\u002Fnews\u002Fgallery\u002F\u003Cgallery-name>\u003C\u002Fcode> and \u003Ccode>\u002Fmedia\u002Falbum\u002F\u003Cgallery-name>\u003C\u002Fcode>\u003C\u002Fp>\n\u003Cp>All you have to do is:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Go to Settings > CPT Multiroutes (you will se a list of your custom post types)\u003C\u002Fli>\n\u003Cli>Click on “Add Route” for your ‘Galleries’ post.\u003C\u002Fli>\n\u003Cli>Fill the new imput for that new route, in this case ‘news\u002Fgallery’\u003C\u002Fli>\n\u003Cli>Repeat 2&3 per route you want to add.\u003C\u002Fli>\n\u003Cli>Select the checkbox ‘Rewrite this post type archive to these routes’ if you want that route to be your archive page for the custom post type.\u003C\u002Fli>\n\u003Cli>Click Save Routes.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Additionally a custom Metabox will appear on each of those custom post types on its admin edit page, there you will be able to choose individually on which route you wish the post to be visible. By default it will be visible on all defined routes.\u003C\u002Fp>\n\u003Cp>If you are using WPML for multilanguage, when you add a route, an input for each acive language will appear so you can translate those new routes.\u003C\u002Fp>\n","Allows to have 'custom post types' on multiple custom routes for single\u002Farchive pages. Compatible with WPML.",1302,"2020-01-07T12:32:00.000Z","5.3.21","4.9","5.6",[49,50,51,52,53],"custom-post-types","multilingual","multiroutes","routes","translate-slugs","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fcustom-post-type-multiroutes.zip",{"attackSurface":56,"codeSignals":105,"taintFlows":147,"riskAssessment":224,"analyzedAt":244},{"hooks":57,"ajaxHandlers":87,"restRoutes":101,"shortcodes":102,"cronEvents":103,"entryPointCount":104,"unprotectedCount":104},[58,64,68,73,78,83],{"type":59,"name":60,"callback":61,"file":62,"line":63},"action","init","setup_astrans","adv-slug-translate.php",71,{"type":59,"name":65,"callback":66,"file":62,"line":67},"admin_menu","wpdocs_register_astrans_menu_page",89,{"type":59,"name":69,"callback":70,"priority":71,"file":62,"line":72},"astrans_sidebar","hook_astrans_sidebar",1,106,{"type":59,"name":74,"callback":75,"priority":76,"file":62,"line":77},"admin_enqueue_scripts","hook_astrans_admin",10,114,{"type":79,"name":80,"callback":81,"priority":76,"file":62,"line":82},"filter","wp_unique_post_slug","custom_unique_post_slug_astrans",120,{"type":59,"name":84,"callback":85,"priority":76,"file":62,"line":86},"wp_unique_term_slug","custom_created_term_astrans",135,[88,92,95,98],{"action":89,"nopriv":90,"callback":89,"hasNonce":90,"hasCapCheck":90,"file":62,"line":91},"save_astrans_astrans",false,201,{"action":93,"nopriv":90,"callback":93,"hasNonce":90,"hasCapCheck":90,"file":62,"line":94},"table_sync_astrans",228,{"action":96,"nopriv":90,"callback":96,"hasNonce":90,"hasCapCheck":90,"file":62,"line":97},"save_sync_astrans",295,{"action":99,"nopriv":90,"callback":99,"hasNonce":90,"hasCapCheck":90,"file":62,"line":100},"astrans_navi",462,[],[],[],4,{"dangerousFunctions":106,"sqlUsage":107,"outputEscaping":124,"fileOperations":71,"externalRequests":11,"nonceChecks":11,"capabilityChecks":11,"bundledLibraries":146},[],{"prepared":71,"raw":108,"locations":109},6,[110,113,116,118,120,122],{"file":62,"line":111,"context":112},61,"$wpdb->get_results() with variable interpolation",{"file":62,"line":114,"context":115},63,"$wpdb->query() with variable interpolation",{"file":62,"line":117,"context":112},66,{"file":62,"line":119,"context":115},68,{"file":62,"line":121,"context":112},361,{"file":62,"line":123,"context":112},364,{"escaped":125,"rawEcho":76,"locations":126},22,[127,130,131,133,135,137,139,140,143,144],{"file":62,"line":128,"context":129},281,"raw output",{"file":62,"line":128,"context":129},{"file":62,"line":132,"context":129},283,{"file":62,"line":134,"context":129},284,{"file":62,"line":136,"context":129},285,{"file":62,"line":138,"context":129},507,{"file":62,"line":138,"context":129},{"file":141,"line":142,"context":129},"inc\\index.php",25,{"file":141,"line":142,"context":129},{"file":141,"line":145,"context":129},44,[],[148,165,179,198],{"entryPoint":149,"graph":150,"unsanitizedCount":71,"severity":164},"table_sync_astrans (adv-slug-translate.php:229)",{"nodes":151,"edges":162},[152,157],{"id":153,"type":154,"label":155,"file":62,"line":156},"n0","source","$_GET",238,{"id":158,"type":159,"label":160,"file":62,"line":128,"wp_function":161},"n1","sink","echo() [XSS]","echo",[163],{"from":153,"to":158,"sanitized":90},"medium",{"entryPoint":166,"graph":167,"unsanitizedCount":29,"severity":178},"save_astrans_astrans (adv-slug-translate.php:202)",{"nodes":168,"edges":176},[169,172],{"id":153,"type":154,"label":170,"file":62,"line":171},"$_GET (x3)",207,{"id":158,"type":159,"label":173,"file":62,"line":174,"wp_function":175},"update_option() [Settings Manipulation]",210,"update_option",[177],{"from":153,"to":158,"sanitized":90},"low",{"entryPoint":180,"graph":181,"unsanitizedCount":196,"severity":197},"save_sync_astrans (adv-slug-translate.php:296)",{"nodes":182,"edges":193},[183,186,189],{"id":153,"type":154,"label":184,"file":62,"line":185},"$_GET (x2)",314,{"id":158,"type":187,"label":188,"file":62,"line":185},"transform","→ save_trans_astrans()",{"id":190,"type":159,"label":191,"file":62,"line":123,"wp_function":192},"n2","get_results() [SQLi]","get_results",[194,195],{"from":153,"to":158,"sanitized":90},{"from":158,"to":190,"sanitized":90},2,"high",{"entryPoint":199,"graph":200,"unsanitizedCount":76,"severity":197},"\u003Cadv-slug-translate> (adv-slug-translate.php:0)",{"nodes":201,"edges":218},[202,203,204,205,207,210,212,214,216],{"id":153,"type":154,"label":170,"file":62,"line":171},{"id":158,"type":159,"label":173,"file":62,"line":174,"wp_function":175},{"id":190,"type":154,"label":170,"file":62,"line":156},{"id":206,"type":159,"label":160,"file":62,"line":128,"wp_function":161},"n3",{"id":208,"type":154,"label":184,"file":62,"line":209},"n4",302,{"id":211,"type":159,"label":191,"file":62,"line":121,"wp_function":192},"n5",{"id":213,"type":154,"label":184,"file":62,"line":185},"n6",{"id":215,"type":187,"label":188,"file":62,"line":185},"n7",{"id":217,"type":159,"label":191,"file":62,"line":123,"wp_function":192},"n8",[219,220,221,222,223],{"from":153,"to":158,"sanitized":90},{"from":190,"to":206,"sanitized":90},{"from":208,"to":211,"sanitized":90},{"from":213,"to":215,"sanitized":90},{"from":215,"to":217,"sanitized":90},{"summary":225,"deductions":226},"The 'advanced-slug-translate' v1.0 plugin exhibits a concerning security posture primarily due to its unprotected entry points. While the static analysis reveals no dangerous functions or external HTTP requests, and a moderate rate of properly escaped outputs, the presence of four AJAX handlers entirely lacking authentication checks is a significant vulnerability. Furthermore, the taint analysis indicates two high-severity flows with unsanitized paths, suggesting potential for attackers to manipulate data in ways that could lead to data corruption or unauthorized actions. The absence of any known vulnerability history might seem positive, but it doesn't negate the risks identified in the static analysis. It's possible that the plugin's limited functionality or obscurity has prevented past exploitation, but the current code exposes clear attack vectors. In conclusion, despite the lack of historical CVEs and the absence of overtly dangerous code constructs, the plugin's design, particularly the unprotected AJAX endpoints and high-severity taint flows, presents a notable risk that requires immediate attention.",[227,230,232,235,238,240,242],{"reason":228,"points":229},"AJAX handlers without auth checks",20,{"reason":231,"points":229},"High severity taint flows (2)",{"reason":233,"points":234},"Unsanitized paths in taint flows",15,{"reason":236,"points":237},"SQL queries not using prepared statements (86%)",5,{"reason":239,"points":76},"No nonce checks",{"reason":241,"points":76},"No capability checks",{"reason":243,"points":237},"File operations present","2026-03-17T06:51:25.430Z",{"wat":246,"direct":253},{"assetPaths":247,"generatorPatterns":250,"scriptPaths":251,"versionParams":252},[248,249],"\u002Fwp-content\u002Fplugins\u002Fadvanced-slug-translate\u002Fassets\u002Fcss\u002Fastrans-admin.css","\u002Fwp-content\u002Fplugins\u002Fadvanced-slug-translate\u002Fassets\u002Fjs\u002Fastrans-admin.js",[],[],[],{"cssClasses":254,"htmlComments":255,"htmlAttributes":258,"restEndpoints":259,"jsGlobals":260,"shortcodeOutput":261},[],[256,257],"\u003C!-- (^ _ ^) code (@ _ @) -->","\u003C!-- Automation Translate -->",[],[],[],[],{"error":263,"url":264,"statusCode":265,"statusMessage":266,"message":266},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fadvanced-slug-translate\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":11,"versions":268},[]]