Sajjetti – AI Audit
Sajjetti – AI Audit is a security-first code scanner for WordPress plugins and themes. It performs static analysis of PHP, HTML, CSS, and JS files to detect vulnerabilities, performance issues, and coding standard problems before they become real risks. Privacy by design – Nothing runs automatically; all scans are triggered manually by the site owner. – Files are analyzed statically — never executed. – Remote analysis is disabled by default. No code leaves your site until you explicitly enable “Allow remote analysis” in Settings. – When enabled, selected file contents are sent securely over HTTPS to the Sajjetti API. Analysis data is temporary and discarded after results are returned. – Complies with WordPress.org privacy and consent guidelines. What it helps you find – Security: unescaped output, missing nonces and capability checks, unsafe file operations, risky SQL patterns, and other common vulnerabilities. – Performance: expensive loops, heavy queries, oversized assets, and inefficient patterns that slow down page loads. – Code quality and compatibility: deprecated APIs, version-specific pitfalls, and conflicts with WordPress coding standards. Optional AI assistance When remote analysis is enabled, the Sajjetti API provides AI-powered suggestions with context-specific recommendations. Results are presented with file-by-file drill-down, risk levels, and actionable insights. Human review is always recommended before making changes. Key Features Detects vulnerabilities, warnings, and performance issues Provides optional AI-assisted analysis with actionable suggestions Offers file-by-file drill-down and detailed reports Built with a security-first design, including VIP-compliant validation and sanitization Security Considerations All scans are user-initiated; nothing runs automatically. File contents are analyzed statically (never executed). REST endpoints require capability checks and nonces. All external requests use HTTPS with nonce and referer validation. Uninstall removes plugin data (options and tables) cleanly. All user-facing strings are escaped and translatable. Pricing and API Access The plugin includes a small allowance of free scans. Additional scans require an API key, available through a paid subscription. Privacy When you initiate a scan with remote analysis enabled, this plugin may transmit selected file contents (Base64-encoded PHP, HTML, CSS, and JS), limited file metadata (filename, relative path, size, cryptographic hash such as SHA-256), your site IP address and URL (for license validation), and your Sajjetti API username to the Sajjetti API for static analysis. No WordPress user account data, passwords, or database content is transmitted or stored. Temporary analysis data is deleted after results are returned. For details, see the included privacy.md file. Remote analysis is disabled by default. Scans cannot start until the site owner explicitly enables Allow remote analysis in Settings. External services This plugin connects to the Sajjetti Hub API (https://sajjetti.ai) to validate license status, manage usage limits, upload code snippets for analysis, and fetch audit results. Data sent: – License key and username when validating or checking usage. – Website URL and IP address when validating usage. – Selected PHP/JS/CSS source files when submitting for auditing. Data returned: – License type and remaining file quota. – Audit results (security, performance, and code quality insights). Legal & Privacy: – Terms of Service: https://sajjetti.ai/terms-of-service/ – Privacy Policy: https://sajjetti.ai/privacy-policy/
Top keywords
- analysis12×2.41%
- sajjetti9×1.81%
- api7×1.41%
- file7×1.41%
- data6×1.21%
- privacy6×1.21%
- remote6×1.21%
- remote analysis6×1.21%
- ai5×1.01%
- code5×1.01%
- https5×1.01%
- results5×1.01%
SudoWP Radar
WordPress 7.0 introduced a new AI attack surface. Every plugin that registers an ability on your site declares a structured entry point for AI agents and MCP tools. SudoWP Radar audits that surface at runtime, flagging misconfigurations before they become incidents. It sits between reactive CVE scanners (which wait for a vulnerability to be disclosed) and developer-side static analysis tools (which run before deployment). Radar audits what is actually registered and executing on your live site, right now. What it audits Core ability rules (WP 6.9+) Open and weak permissions — abilities with no permission_callback, or one that passes any authenticated user through regardless of role. Missing or loose input schemas — abilities that accept unconstrained string inputs on fields like path, file, url, redirect, or slug. Common injection vector for path traversal and SSRF. REST overexposure — abilities marked show_in_rest with no or open permission control, reachable by unauthenticated callers. Orphaned callbacks — execute_callbacks referencing functions no longer loaded, typically left behind by deactivated plugins. Namespace collisions — duplicate ability names where the last registration silently overwrites the first, potentially downgrading the permission model. AI agent rules (WP 7.0+) AI prompt filter bypass (HIGH) — a plugin has disabled the sitewide AI prompt prevention gate. Any AI agent connected to your site bypasses this control. AI REST overexposure (CRITICAL/HIGH) — REST endpoints that invoke the AI client with no or weak permission checks. Directly exploitable by unauthenticated callers. AI missing version gate (MEDIUM) — plugins calling the WP 7.0 AI client without a compatibility check, causing fatal errors on sites not yet running 7.0. Hosting-injected ability (HIGH) — an ability registered by a plugin auto-installed by your hosting provider, without explicit site administrator consent, with REST exposure enabled. Requires premium vendor slug list via the SudoWP dataset. Connector key in database (HIGH) — an AI provider API key (OpenAI, Anthropic, Google, or similar) is stored as plaintext in your WordPress database via the WP 7.0 Connectors API. Any SQL injection or object cache exposure on your site leaks this key directly. The fix is to define it as an environment variable or PHP constant instead. Why this matters now WordPress 7.0 ships with native AI agent integration. Plugins can now register abilities that AI agents call directly, expose AI endpoints over REST, and connect to external AI providers via the Connectors API. Each of these is a new attack surface that existing security scanners do not cover — they match known CVEs, they do not audit AI agent architecture. Some hosting providers have begun auto-installing AI agent plugins on customer sites without explicit consent. If one of those plugins registers abilities with REST exposure, or stores an AI provider key in your database, Radar flags it. How it works Radar reads the live abilities registry after all plugins and themes have loaded. It applies its rule engine to each registered ability and returns a findings report with severity ratings (CRITICAL, HIGH, MEDIUM, LOW) and specific remediation guidance per finding. A risk score from 0-100 summarises the overall exposure. The audit runs on demand. It does not affect front-end performance. Security model Requires the radar_run_audit capability (administrators by default). All requests are nonce-gated. No public-facing endpoints. Findings are stored in user meta, not global options. Rate-limited to one audit per 30 seconds per user. Free vs premium The free plugin is a fully functional standalone auditor. An optional premium add-on (SudoWP Pro) extends it with vulnerability dataset matching (CVE references, CVSS scores, patch guidance), the hosting-injected vendor slug list, scheduled audits with email alerts, multi-site dashboard aggregation, and report export. None of the premium features are required to run the core audit. External Services When an API key is configured, SudoWP Radar connects to the SudoWP vulnerability dataset API (api.sudowp.com) to retrieve patch availability information for registered WordPress abilities. No data is transmitted without an API key being explicitly entered by the site administrator. When no key is present, the plugin makes zero external network requests. Data sent to the API: the ability name being looked up and your API key. No personal data, no site URL, no user data is transmitted. API key registration: https://sudowp.com/get-api-key/ Terms of service: https://sudowp.com/tos/ Privacy policy: https://sudowp.com/privacy-policy/