[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fvTer0_dFyR2WyMoWn4PS0apvxEl38sUipzi29LgYztk":3},{"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":15,"requires_php":16,"tags":17,"homepage":18,"download_link":19,"security_score":20,"vuln_count":11,"unpatched_count":11,"last_vuln_date":21,"fetched_at":22,"vulnerabilities":23,"developer":24,"crawl_stats":21,"alternatives":32,"analysis":33,"fingerprints":80},"kgr-cookie-duration","KGR Cookie Duration","1.1","Konstantinos Raktivan","https:\u002F\u002Fprofiles.wordpress.org\u002Fconstracti\u002F","\u003Cp>Filters the authentication cookie duration.\u003C\u002Fp>\n","Filters the authentication cookie duration.",0,1223,"2024-11-18T17:55:00.000Z","6.7.5","3.5.0","7.0",[],"https:\u002F\u002Fgithub.com\u002Fconstracti\u002Fkgr-cookie-duration","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fkgr-cookie-duration.1.1.zip",92,null,"2026-03-15T15:16:48.613Z",[],{"slug":25,"display_name":7,"profile_url":8,"plugin_count":26,"total_installs":27,"avg_security_score":28,"avg_patch_time_days":29,"trust_score":30,"computed_at":31},"constracti",4,60,90,30,87,"2026-04-05T09:56:38.240Z",[],{"attackSurface":34,"codeSignals":57,"taintFlows":72,"riskAssessment":73,"analyzedAt":79},{"hooks":35,"ajaxHandlers":53,"restRoutes":54,"shortcodes":55,"cronEvents":56,"entryPointCount":11,"unprotectedCount":11},[36,42,47,50],{"type":37,"name":38,"callback":39,"file":40,"line":41},"action","init","closure","index.php",24,{"type":43,"name":44,"callback":39,"priority":45,"file":40,"line":46},"filter","plugin_action_links",10,28,{"type":37,"name":48,"callback":39,"file":40,"line":49},"admin_init",38,{"type":43,"name":51,"callback":39,"priority":45,"file":40,"line":52},"auth_cookie_expiration",76,[],[],[],[],{"dangerousFunctions":58,"sqlUsage":59,"outputEscaping":61,"fileOperations":11,"externalRequests":11,"nonceChecks":11,"capabilityChecks":70,"bundledLibraries":71},[],{"prepared":11,"raw":11,"locations":60},[],{"escaped":62,"rawEcho":63,"locations":64},3,2,[65,68],{"file":40,"line":66,"context":67},46,"raw output",{"file":40,"line":69,"context":67},51,1,[],[],{"summary":74,"deductions":75},"The \"kgr-cookie-duration\" v1.1 plugin exhibits a generally strong security posture based on the provided static analysis.  The absence of any identified AJAX handlers, REST API routes, shortcodes, or cron events significantly limits the potential attack surface.  Furthermore, the code demonstrates good practices with 100% of SQL queries using prepared statements and the presence of at least one capability check, which is a positive sign for access control. The lack of dangerous functions, file operations, and external HTTP requests further reduces common attack vectors.\n\nHowever, there are areas for improvement. The output escaping is only 60% proper, meaning 40% of outputs are potentially vulnerable to cross-site scripting (XSS) if the data being output is user-controlled or untrusted.  The complete absence of nonce checks and taint analysis results, while possibly indicating no exploitable issues were found, also means there's no direct evidence of robust input validation or sanitization for potential vulnerabilities.  The vulnerability history is clean, which is excellent, but this doesn't negate the need for vigilance in code practices.\n\nIn conclusion, the plugin has a solid foundation with a minimal attack surface and good SQL handling. The primary concern lies with the incomplete output escaping, which poses a potential XSS risk. The lack of detected taint flows and zero known CVEs are positive indicators, but the plugin could benefit from more comprehensive input validation and sanitization measures, even if no immediate critical issues are apparent in the current analysis.",[76],{"reason":77,"points":78},"Output escaping is not fully implemented (40% unescaped)",6,"2026-03-17T06:31:26.587Z",{"wat":81,"direct":86},{"assetPaths":82,"generatorPatterns":83,"scriptPaths":84,"versionParams":85},[],[],[],[],{"cssClasses":87,"htmlComments":89,"htmlAttributes":90,"restEndpoints":97,"jsGlobals":98,"shortcodeOutput":99},[88],"small-text",[],[91,92,93,94,95,96],"id=\"kgr-cookie-duration-short\"","name=\"kgr-cookie-duration-short\"","id=\"kgr-cookie-duration-long\"","name=\"kgr-cookie-duration-long\"","label_for=\"kgr-cookie-duration-short\"","label_for=\"kgr-cookie-duration-long\"",[],[],[]]