{"id":232662,"date":"2025-05-13T15:04:55","date_gmt":"2025-05-13T15:04:55","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/vulntitan-vulnerability-scanner\/"},"modified":"2026-03-31T19:06:53","modified_gmt":"2026-03-31T19:06:53","slug":"vulntitan","status":"publish","type":"plugin","link":"https:\/\/pcd.wordpress.org\/plugins\/vulntitan\/","author":5455787,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.1.17","stable_tag":"2.1.17","tested":"6.9.4","requires":"","requires_php":"7.4","requires_plugins":null,"header_name":"VulnTitan - Malware Scanner, Vulnerability Scanner & Security","header_author":"Jaroslav Svetlik","header_description":"Detect known security vulnerabilities in plugins, themes, and core files using real-time data from the VulnTitan API.","assets_banners_color":"23353f","last_updated":"2026-03-31 19:06:53","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/ncp\/payment\/TPGXWZTJX7TDE","header_plugin_uri":"https:\/\/vulntitan.com\/vulntitan\/","header_author_uri":"https:\/\/vulntitan.com","rating":5,"author_block_rating":0,"active_installs":10,"downloads":1460,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"jerryscg","date":"2025-05-13 15:05:37"},"1.0.4":{"tag":"1.0.4","author":"jerryscg","date":"2025-05-18 20:13:46"},"1.0.5":{"tag":"1.0.5","author":"jerryscg","date":"2025-05-23 11:24:57"},"1.0.6":{"tag":"1.0.6","author":"jerryscg","date":"2025-05-28 21:27:41"},"1.0.7":{"tag":"1.0.7","author":"jerryscg","date":"2025-05-28 22:48:07"},"2.0.0":{"tag":"2.0.0","author":"jerryscg","date":"2026-02-25 15:31:13"},"2.0.1":{"tag":"2.0.1","author":"jerryscg","date":"2026-03-03 12:32:26"},"2.0.2":{"tag":"2.0.2","author":"jerryscg","date":"2026-03-10 18:24:07"},"2.0.3":{"tag":"2.0.3","author":"jerryscg","date":"2026-03-10 20:52:04"},"2.0.4":{"tag":"2.0.4","author":"jerryscg","date":"2026-03-10 23:10:59"},"2.0.5":{"tag":"2.0.5","author":"jerryscg","date":"2026-03-11 17:04:14"},"2.0.6":{"tag":"2.0.6","author":"jerryscg","date":"2026-03-12 19:11:29"},"2.0.7":{"tag":"2.0.7","author":"jerryscg","date":"2026-03-13 08:12:48"},"2.0.8":{"tag":"2.0.8","author":"jerryscg","date":"2026-03-13 09:19:28"},"2.1.1":{"tag":"2.1.1","author":"jerryscg","date":"2026-03-14 17:25:39"},"2.1.10":{"tag":"2.1.10","author":"jerryscg","date":"2026-03-16 11:03:00"},"2.1.12":{"tag":"2.1.12","author":"jerryscg","date":"2026-03-16 18:07:17"},"2.1.13":{"tag":"2.1.13","author":"jerryscg","date":"2026-03-18 17:32:42"},"2.1.14":{"tag":"2.1.14","author":"jerryscg","date":"2026-03-18 17:40:50"},"2.1.15":{"tag":"2.1.15","author":"jerryscg","date":"2026-03-18 21:16:00"},"2.1.16":{"tag":"2.1.16","author":"jerryscg","date":"2026-03-25 10:25:03"},"2.1.17":{"tag":"2.1.17","author":"jerryscg","date":"2026-03-31 19:06:53"},"2.1.2":{"tag":"2.1.2","author":"jerryscg","date":"2026-03-14 19:49:30"},"2.1.3":{"tag":"2.1.3","author":"jerryscg","date":"2026-03-14 20:22:58"},"2.1.4":{"tag":"2.1.4","author":"jerryscg","date":"2026-03-14 21:36:52"},"2.1.5":{"tag":"2.1.5","author":"jerryscg","date":"2026-03-15 12:42:37"},"2.1.6":{"tag":"2.1.6","author":"jerryscg","date":"2026-03-15 13:17:27"},"2.1.7":{"tag":"2.1.7","author":"jerryscg","date":"2026-03-15 23:20:43"},"2.1.8":{"tag":"2.1.8","author":"jerryscg","date":"2026-03-16 07:48:11"},"2.1.9":{"tag":"2.1.9","author":"jerryscg","date":"2026-03-16 09:35:35"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3479597,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3479597,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3479597,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3296655,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","2.0.5","2.0.6","2.0.7","2.0.8","2.1.1","2.1.10","2.1.12","2.1.13","2.1.14","2.1.15","2.1.16","2.1.17","2.1.2","2.1.3","2.1.4","2.1.5","2.1.6","2.1.7","2.1.8","2.1.9"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3479597,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3479597,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3479597,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3479597,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3479597,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3479597,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3481425,"resolution":"7","location":"assets","locale":""}},"screenshots":{"1":"WordPress malware and vulnerability scan dashboard overview.","2":"Malware detection results with safe-fix workflow and backup protection.","3":"Vulnerability scanner results showing vulnerable plugins and themes.","4":"File integrity scan results with baseline comparison.","5":"Firewall and WAF protection settings panel.","6":"Vulnerability scan progress bar.","7":"Firewall hidden custom login configuration and protected access screen."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[235296,55021,139069],"plugin_category":[54],"plugin_contributors":[],"plugin_business_model":[],"class_list":["post-232662","plugin","type-plugin","status-publish","hentry","plugin_tags-malware-removal","plugin_tags-malware-scanner","plugin_tags-vulnerability-scanner","plugin_category-security-and-spam-protection","plugin_committers-jerryscg"],"banners":{"banner":"https:\/\/ps.w.org\/vulntitan\/assets\/banner-772x250.png?rev=3296655","banner_2x":"https:\/\/ps.w.org\/vulntitan\/assets\/banner-1544x500.png?rev=3479597","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/vulntitan\/assets\/icon-128x128.png?rev=3479597","icon_2x":"https:\/\/ps.w.org\/vulntitan\/assets\/icon-256x256.png?rev=3479597","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/vulntitan\/assets\/screenshot-1.png?rev=3479597","caption":"WordPress malware and vulnerability scan dashboard overview."},{"src":"https:\/\/ps.w.org\/vulntitan\/assets\/screenshot-2.png?rev=3479597","caption":"Malware detection results with safe-fix workflow and backup protection."},{"src":"https:\/\/ps.w.org\/vulntitan\/assets\/screenshot-3.png?rev=3479597","caption":"Vulnerability scanner results showing vulnerable plugins and themes."},{"src":"https:\/\/ps.w.org\/vulntitan\/assets\/screenshot-4.png?rev=3479597","caption":"File integrity scan results with baseline comparison."},{"src":"https:\/\/ps.w.org\/vulntitan\/assets\/screenshot-5.png?rev=3479597","caption":"Firewall and WAF protection settings panel."},{"src":"https:\/\/ps.w.org\/vulntitan\/assets\/screenshot-6.png?rev=3479597","caption":"Vulnerability scan progress bar."},{"src":"https:\/\/ps.w.org\/vulntitan\/assets\/screenshot-7.png?rev=3481425","caption":"Firewall hidden custom login configuration and protected access screen."}],"raw_content":"<!--section=description-->\n<p>VulnTitan is a WordPress security plugin focused on malware scanning and removal, vulnerability detection, file integrity monitoring, firewall protection, and anti-spam controls for comments and supported forms.<\/p>\n\n<p>Instantly scan your WordPress site for malware infections and known vulnerabilities, review detailed results, and clean or remove malware safely using a guided fix workflow with automatic backups.<\/p>\n\n<p>VulnTitan focuses on practical protection: vulnerability detection, malware scanning and removal, file integrity monitoring, firewall protection, anti-spam defense for comments and supported forms, hidden custom login access, and a weekly executive security digest every 7 days.<\/p>\n\n<h4>Malware Scanner<\/h4>\n\n<p>The WordPress malware scanner inspects your site files for suspicious code patterns and known malicious signatures.<\/p>\n\n<ul>\n<li>Detect malware infections in core, plugins, and themes<\/li>\n<li>Review problematic files with contextual code preview<\/li>\n<li>Safe-fix workflow with automatic backups<\/li>\n<li>Clear severity indicators and actionable recommendations<\/li>\n<\/ul>\n\n<h4>Vulnerability Scanner<\/h4>\n\n<p>The vulnerability scanner checks your installed WordPress core, plugins, and themes against a real-time vulnerability database powered by the VulnTitan API.<\/p>\n\n<ul>\n<li>Detect vulnerable plugins and themes<\/li>\n<li>Identify outdated components with known security risks<\/li>\n<li>Real-time vulnerability intelligence<\/li>\n<li>Clear risk explanations and remediation guidance<\/li>\n<\/ul>\n\n<h4>File Integrity Scanner<\/h4>\n\n<p>Monitor unauthorized file changes and unexpected modifications.<\/p>\n\n<ul>\n<li>Baseline comparison for WordPress files<\/li>\n<li>Queue-based processing for performance safety<\/li>\n<li>Visual status legends for fast review<\/li>\n<li>Actionable next steps for suspicious changes<\/li>\n<\/ul>\n\n<h4>Firewall, Login, Comment &amp; Form Protection<\/h4>\n\n<p>VulnTitan includes firewall, WAF, login protection, and anti-spam controls to block common attack patterns and protect WordPress login, comment, and supported form submission surfaces.<\/p>\n\n<ul>\n<li>Early MU-plugin runtime request guards<\/li>\n<li>SQL injection (SQLi) payload protection<\/li>\n<li>Command injection detection<\/li>\n<li>Suspicious path traversal blocking<\/li>\n<li>Endpoint whitelisting controls<\/li>\n<li>Login lockout protection against brute-force attacks<\/li>\n<li>TOTP-based two-factor authentication for selected roles<\/li>\n<li>Recovery codes and trusted-device support for enrolled accounts<\/li>\n<li>CAPTCHA protection for login, registration, lost-password, and optional comment forms<\/li>\n<li>XML-RPC allow, disable, or rate-limit policy controls with IP allowlisting<\/li>\n<li>Weak-password blocking during profile updates, password resets, and compatible registrations<\/li>\n<li>Comment Shield with honeypot, signed tokens, submit-time validation, duplicate detection, guest link limits, IP rate limiting, and moderation-aware logging<\/li>\n<li>Form Shield for Contact Form 7 and Fluent Forms with honeypot, signed submit tokens, link heuristics, repeated-domain detection, and IP rate limiting<\/li>\n<li>Form spam blocks are logged into the WAF\/live feed with provider-aware source labels for easier review<\/li>\n<li>Suspicious comments can be held for moderation or blocked immediately<\/li>\n<li>REST comments can enforce signed anti-spam tokens and CAPTCHA when anonymous REST commenting is enabled elsewhere<\/li>\n<li>Configurable custom login slug so administrators can use a private login URL instead of the default <code>wp-login.php<\/code><\/li>\n<li>Default <code>wp-login.php<\/code> and guest <code>wp-admin<\/code> access can be hidden behind a <code>404<\/code> response when custom login is enabled<\/li>\n<li>Weekly executive security report email with 7-day firewall, login abuse, WAF, form spam, and comment moderation statistics<\/li>\n<\/ul>\n\n<h4>Security-First Architecture<\/h4>\n\n<ul>\n<li>Secure storage and cleanup of scan queues and logs<\/li>\n<li>Hardened backup handling outside <code>ABSPATH<\/code> by default<\/li>\n<li>Hardened malware and integrity scan actions with stricter capability checks and in-root path validation<\/li>\n<li>Adaptive performance tuning for safe large-site scanning<\/li>\n<\/ul>\n\n<h4>WP-CLI Support<\/h4>\n\n<p>VulnTitan supports WP-CLI commands for malware, integrity, and vulnerability scans so administrators can run checks from the terminal, scripts, or server automation.<\/p>\n\n<ul>\n<li><code>wp vulntitan scan malware<\/code><\/li>\n<li><code>wp vulntitan scan integrity<\/code><\/li>\n<li><code>wp vulntitan scan vulnerability<\/code><\/li>\n<li><code>wp vulntitan scan all<\/code><\/li>\n<li>Optional flags: <code>--scope=plugins<\/code>, <code>--format=json<\/code>, <code>--fail-on-findings<\/code><\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to an external API at https:\/\/vulntitan.com\/api\/vulnerabilities to fetch up-to-date vulnerability data for WordPress core, plugins, and themes. This data is essential for detecting known vulnerabilities during scan operations.<\/p>\n\n<p>When a vulnerability scan is performed, the following data is sent to the VulnTitan API:\n- The slug and version of each plugin\n- The slug and version of each theme\n- The WordPress core version<\/p>\n\n<p>This data is transmitted only during scans initiated by the user or by scheduled scan settings. No personal, user-identifying, or sensitive site data is collected, transmitted, or stored.<\/p>\n\n<p>The external service is provided and operated by VulnTitan.com.<\/p>\n\n<ul>\n<li>Terms of Service: https:\/\/vulntitan.com\/terms<\/li>\n<li>Privacy Policy: https:\/\/vulntitan.com\/privacy<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>From your WordPress dashboard<\/h4>\n\n<ol>\n<li>Navigate to <strong>Plugins &gt; Add New<\/strong><\/li>\n<li>Click <strong>Upload Plugin<\/strong><\/li>\n<li>Upload the downloaded ZIP file<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate<\/strong><\/li>\n<\/ol>\n\n<h4>From FTP or File Manager<\/h4>\n\n<ol>\n<li>Upload the extracted <code>vulntitan<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Go to your WordPress dashboard<\/li>\n<li>Navigate to <strong>Plugins &gt; Installed Plugins<\/strong><\/li>\n<li>Find <strong>VulnTitan<\/strong> and click <strong>Activate<\/strong><\/li>\n<\/ol>\n\n<h4>Once activated<\/h4>\n\n<ul>\n<li>Go to <strong>VulnTitan<\/strong> in your admin menu<\/li>\n<li>Click <strong>Scan Now<\/strong> to run a malware and vulnerability scan<\/li>\n<li>Review detected vulnerabilities, malware infections, and file integrity issues<\/li>\n<li>Apply guided safe fixes where needed<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"who%20owns%20the%20vulntitan%20api%3F\"><h3>Who owns the VulnTitan API?<\/h3><\/dt>\n<dd><p>The VulnTitan API is developed, owned, and maintained by the same team behind this plugin. It is not a third-party service. The API is operated solely to provide accurate and real-time vulnerability intelligence for WordPress sites.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20plugin%20send%20to%20the%20api%3F\"><h3>What data does the plugin send to the API?<\/h3><\/dt>\n<dd><p>The plugin sends only non-personal technical information such as plugin slugs, theme slugs, and WordPress core version numbers. No personal data, login credentials, email addresses, or sensitive information is transmitted or stored.<\/p><\/dd>\n<dt id=\"why%20is%20the%20api%20connection%20required%3F\"><h3>Why is the API connection required?<\/h3><\/dt>\n<dd><p>The API provides up-to-date vulnerability data needed to detect known security issues affecting WordPress core, plugins, and themes. Without this connection, vulnerability detection would not function correctly.<\/p><\/dd>\n<dt id=\"does%20vulntitan%20remove%20malware%3F\"><h3>Does VulnTitan remove malware?<\/h3><\/dt>\n<dd><p>Yes. When malware is detected, VulnTitan provides a guided safe-fix workflow with backup protection so you can review and safely remove infected files.<\/p><\/dd>\n<dt id=\"does%20vulntitan%20support%20wp-cli%3F\"><h3>Does VulnTitan support WP-CLI?<\/h3><\/dt>\n<dd><p>Yes. VulnTitan includes WP-CLI commands for malware, integrity, vulnerability, and combined scans.<\/p>\n\n<p>Examples:<\/p>\n\n<ul>\n<li><code>wp vulntitan scan malware<\/code><\/li>\n<li><code>wp vulntitan scan integrity<\/code><\/li>\n<li><code>wp vulntitan scan vulnerability<\/code><\/li>\n<li><code>wp vulntitan scan all<\/code><\/li>\n<li><code>wp vulntitan scan malware --scope=plugins<\/code><\/li>\n<li><code>wp vulntitan scan all --format=json<\/code><\/li>\n<li><code>wp vulntitan scan vulnerability --fail-on-findings<\/code><\/li>\n<\/ul><\/dd>\n<dt id=\"my%20site%20is%20behind%20a%20proxy%20or%20cdn.%20how%20do%20i%20configure%20ip%20detection%3F\"><h3>My site is behind a proxy or CDN. How do I configure IP detection?<\/h3><\/dt>\n<dd><p>If you use Cloudflare, enable \"Trust Cloudflare\" in <strong>VulnTitan &gt; Firewall &gt; Access Shield &gt; Proxy &amp; CDN<\/strong>. For other reverse proxies or load balancers, add their IP addresses to \"Trusted Proxy IPs\". If your site is not behind a proxy or CDN, leave these settings disabled to avoid spoofed IP addresses in logs and lockouts.<\/p><\/dd>\n<dt id=\"does%20vulntitan%20protect%20contact%20forms%20from%20spam%3F\"><h3>Does VulnTitan protect contact forms from spam?<\/h3><\/dt>\n<dd><p>Yes. VulnTitan currently supports spam protection for Contact Form 7 and Fluent Forms, alongside native WordPress comment anti-spam controls.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>v2.1.17 - 31 Mar, 2026<\/h4>\n\n<ul>\n<li>Hardened malware and integrity scan actions with stricter capability checks, boundary-safe path validation, and server-side verification of auto-fix targets.<\/li>\n<li>Closed the conditional REST comment bypass by enforcing signed anti-spam tokens and comment CAPTCHA on REST comment submissions as well.<\/li>\n<li>Added stronger 2FA challenge throttling, tighter proxy trust handling, bounded anti-spam token lifetimes, and reduced hot-path maintenance overhead.<\/li>\n<li>Expanded release metadata and readme coverage for comment moderation, digest reporting, and hardening updates.<\/li>\n<\/ul>\n\n<h4>v2.1.16 - 25 Mar, 2026<\/h4>\n\n<ul>\n<li>Tightened Comment Shield spam detection with casino, betting, gambling, promotional-link, repeated-domain, and thin-link comment heuristics for guest comments.<\/li>\n<li>Added firewall logging when suspicious comments are held and when WordPress routes comments into the pending moderation queue.<\/li>\n<li>Expanded the weekly executive security digest with form spam, comment queue, and broader protection-profile coverage.<\/li>\n<li>Improved the HTML digest layout on mobile by stacking compressed two-column sections into a readable single-column flow.<\/li>\n<\/ul>\n\n<h4>v2.1.15 - 18 Mar, 2026<\/h4>\n\n<ul>\n<li>Added \u201cNot installed\u201d provider messaging in Spam Protection and disabled unavailable form provider toggles until Contact Form 7 or Fluent Forms is activated.<\/li>\n<\/ul>\n\n<h4>v2.1.14 - 18 Mar, 2026<\/h4>\n\n<ul>\n<li>Fixed the Firewall settings save flow after the Spam Protection UI refactor by removing stale legacy comment-field JavaScript references.<\/li>\n<\/ul>\n\n<h4>v2.1.13 - 18 Mar, 2026<\/h4>\n\n<ul>\n<li>Added form anti-spam protection for Contact Form 7 and Fluent Forms with honeypot, signed submit tokens, link heuristics, repeated-domain detection, and rate limiting.<\/li>\n<li>Added a dedicated Spam Protection UI with separate Comments and Forms controls plus provider toggles.<\/li>\n<li>Logged supported form spam blocks into the WAF\/live feed with provider-aware source labels and separated form blocks from general WAF blocks in the live feed.<\/li>\n<\/ul>\n\n<h4>v2.1.12 - 16 Mar, 2026<\/h4>\n\n<ul>\n<li>Added vulnerability detail fields: fixed version, affected versions, CVSS score\/vector, published date, and exploit status.<\/li>\n<li>Added risk score (severity + exposure) badges in vulnerability findings.<\/li>\n<li>Added risk decisions (\u201cAccept risk\u201d \/ \u201cIgnore\u201d) with expiry and audit log entries.<\/li>\n<li>Persisted risk decisions in a dedicated table and return decisions in scan results.<\/li>\n<li>Added robust formatting for affected version ranges, including Wordfence-style range objects.<\/li>\n<li>Mapped API fields (patched_versions, published, etc.) to UI-friendly names.<\/li>\n<li>Added inline update\/deactivate actions that run without leaving the scan view.<\/li>\n<li>Added post-update rescan to refresh vulnerability cards in place.<\/li>\n<li>Refreshed update transients before building scan items so update actions appear consistently.<\/li>\n<\/ul>\n\n<h4>v2.1.11 - 16 Mar, 2026<\/h4>\n\n<ul>\n<li>Normalized slug handling for single-file plugins and edge cases to improve scan accuracy.<\/li>\n<li>Continued scans when individual items fail instead of aborting the entire run.<\/li>\n<li>Added timeout\/backoff handling with clear 429\/503 messaging for vulnerability data requests.<\/li>\n<li>Added short server-side cache per (type, slug, version) and surfaced \u201cdata age\u201d in the overview.<\/li>\n<li>Added filters and sorting for severity, component type, active status, and fix availability.<\/li>\n<li>Added direct actions for \u201cUpdate now\u201d, \u201cDeactivate\u201d, and \u201cOpen plugin page\u201d.<\/li>\n<li>Added \u201cLast scan at\u201d, \u201cErrors count\u201d, and \u201cData age\u201d to the scan overview.<\/li>\n<li>Improved scan flow with \u201cRetry failed\u201d, \u201cStop scan\u201d, and smart auto-scroll.<\/li>\n<li>Styled scan output filter dropdowns to match the dashboard theme and remove white backgrounds.<\/li>\n<\/ul>\n\n<h4>v2.1.10 - 16 Mar, 2026<\/h4>\n\n<ul>\n<li>Added Learning Mode suggestions for WAF whitelisting, with configurable thresholds and review-only approvals.<\/li>\n<li>Added a Learning Suggestions panel and actions to approve or dismiss suggested patterns.<\/li>\n<li>Fixed a PHP 8.4 deprecation warning by making trusted proxy settings nullable explicitly.<\/li>\n<\/ul>\n\n<h4>v2.1.9 - 16 Mar, 2026<\/h4>\n\n<ul>\n<li>Added Proxy\/CDN configuration in Firewall settings, including Trust Cloudflare and trusted proxy IPs.<\/li>\n<li>Added in-dashboard warnings when proxy headers are detected but trust is not configured.<\/li>\n<li>Updated IP detection to trust forwarded headers only for configured proxies.<\/li>\n<li>Restricted malware, integrity, and vulnerability scan actions to administrators only.<\/li>\n<li>Hardened integrity scan file handling to prevent unsafe path traversal.<\/li>\n<\/ul>\n\n<h4>v2.1.8 - 16 Mar, 2026<\/h4>\n\n<ul>\n<li>Fixed PHP 7.4 compatibility by replacing PHP 8-only syntax in scanner, CAPTCHA, and login-security flows.<\/li>\n<\/ul>\n\n<h4>v2.1.7 - 16 Mar, 2026<\/h4>\n\n<ul>\n<li>Added an approvals workflow for WAF-blocked admin-ajax and REST requests, including targeted whitelist patterns and approve\/dismiss actions.<\/li>\n<li>Added admin alerts and a menu badge for pending approvals, with direct links to the Approvals tab.<\/li>\n<li>Moved the Clear Logs action into the Live Security Feed toolbar.<\/li>\n<\/ul>\n\n<h4>v2.1.6 - 15 Mar, 2026<\/h4>\n\n<ul>\n<li>Added scan progress status notes that highlight the current component or file during Malware, Vulnerability, and Integrity scans.<\/li>\n<\/ul>\n\n<h4>v2.1.5 - 15 Mar, 2026<\/h4>\n\n<ul>\n<li>Added role-based 2FA enforcement so selected roles must enroll before using the admin dashboard, with a direct setup shortcut.<\/li>\n<li>Moved the live Firewall security feed into its own submenu and replaced pagination with a Load more flow.<\/li>\n<li>Added quick actions to unblock or allowlist locked-out IPs from the Firewall feed.<\/li>\n<\/ul>\n\n<h4>v2.1.4 - 14 Mar, 2026<\/h4>\n\n<ul>\n<li>Added a Login Security Pack with TOTP-based 2FA, recovery codes, trusted devices, CAPTCHA form protection, XML-RPC policy controls, and weak-password blocking.<\/li>\n<li>Reworked the 2FA setup UX into a clearer step-by-step profile flow with QR provisioning and inline activation feedback.<\/li>\n<li>Fixed 2FA setup and challenge-screen issues so activation errors return to the verification step and the public login flow no longer depends on admin-only helpers.<\/li>\n<\/ul>\n\n<h4>v2.1.3 - 14 Mar, 2026<\/h4>\n\n<ul>\n<li>Added WP-CLI scan commands for malware, integrity, vulnerability, and combined scan execution.<\/li>\n<li>Added readme documentation and FAQ examples for running VulnTitan scans from the terminal.<\/li>\n<\/ul>\n\n<h4>v2.1.2 - 14 Mar, 2026<\/h4>\n\n<ul>\n<li>Refined the Vulnerability scanner UI with a more professional overview and findings layout.<\/li>\n<li>Moved the Vulnerability Overview panel outside the scrolling results area so it stays sticky as a separate summary block.<\/li>\n<li>Improved clean-result messaging so results now explicitly reference the scanned plugin, theme, or WordPress core component.<\/li>\n<\/ul>\n\n<h4>v2.1.1 - 14 Mar, 2026<\/h4>\n\n<ul>\n<li>Added a live-updating Firewall security feed with auto-refresh, pause\/resume controls, quick filters, search, and per-event forensic detail panels.<\/li>\n<li>Expanded Firewall feed event data so administrators can inspect richer request, actor, and rule context directly in the admin UI.<\/li>\n<li>Improved live refresh behavior so recent event polling no longer overwrites unsaved Firewall settings while the page is open.<\/li>\n<\/ul>\n\n<h4>v2.1.0 - 13 Mar, 2026<\/h4>\n\n<ul>\n<li>Added Comment Shield anti-spam protection for WordPress comments with honeypot, submit-time validation, duplicate detection, link controls, and IP rate limiting.<\/li>\n<li>Added Firewall dashboard and weekly digest statistics for blocked or moderated comment spam activity.<\/li>\n<li>Changed Firewall MU loader status to show WordPress-relative paths such as <code>wp-content\/mu-plugins\/vulntitan-firewall.php<\/code> instead of absolute server filesystem paths.<\/li>\n<\/ul>\n\n<h4>v2.0.8 - 13 Mar, 2026<\/h4>\n\n<ul>\n<li>Added a weekly executive security digest email with 7-day firewall telemetry, login abuse summaries, WAF detections, and top targeted paths\/rules.<\/li>\n<li>Added Firewall settings for enabling the weekly digest and overriding the recipient email address.<\/li>\n<li>Upgraded the digest into a professional branded HTML email template with VulnTitan logo, metric cards, timeline, and protection profile summary.<\/li>\n<\/ul>\n\n<h4>v2.0.7 - 13 Mar, 2026<\/h4>\n\n<ul>\n<li>Fixed custom login logout requests on some Nginx-backed WordPress sites so hidden login logout no longer triggers <code>502 Bad Gateway<\/code> responses.<\/li>\n<li>Stabilized hidden login request bootstrapping and canonical custom login route handling for logout\/login flows.<\/li>\n<\/ul>\n\n<h4>v2.0.6 - 12 Mar, 2026<\/h4>\n\n<ul>\n<li>Added configurable custom login slug support so administrators can use a private login URL instead of the default <code>wp-login.php<\/code> path.<\/li>\n<li>Hidden direct guest access to default <code>wp-login.php<\/code> and <code>wp-admin<\/code> entry points when custom login protection is enabled.<\/li>\n<li>Reworked the Firewall page with a tabbed settings layout, a wider recent events section, and toast-style action feedback.<\/li>\n<\/ul>\n\n<h4>v2.0.4 - 10 Mar, 2026<\/h4>\n\n<ul>\n<li>Redesigned the VulnTitan Dashboard into an elite, professional security command center layout.<\/li>\n<li>Redesigned the Firewall page into a professional command center layout.<\/li>\n<li>Removed the dashboard sidebar to keep the UI focused on scan operations.<\/li>\n<li>Redesigned the top navigation bar to match the new elite dashboard and firewall style.<\/li>\n<li>Fixed scan progress indicator layout in the redesigned dashboard.<\/li>\n<\/ul>\n\n<h4>v2.0.3 - 10 Mar, 2026<\/h4>\n\n<ul>\n<li>Reduced false positives for benign decode-only utilities (e.g., base64 + gzuncompress).<\/li>\n<li>Reduced false positives for safe data:image\/svg+xml;base64 payloads.<\/li>\n<li>Disabled auto-fix for low-risk malware findings to prevent accidental code removal.<\/li>\n<\/ul>\n\n<h4>v2.0.2 - 10 Mar, 2026<\/h4>\n\n<ul>\n<li>Reduced malware scanner false positives for base64-decoded signature and key material.<\/li>\n<li>Avoided false positives from benign data:image base64 CSS payloads embedded in PHP\/JS strings.<\/li>\n<li>Prevented false positives on large serialized option blobs without execution or file-write patterns.<\/li>\n<\/ul>\n\n<h4>v2.0.1 - 03 Mar, 2026<\/h4>\n\n<ul>\n<li>Fixed Vulnerability scanner UI so the \"Vulnerability Overview\" section stays pinned at the top while results are scrolled.<\/li>\n<li>Reduced Malware scanner false positives for benign CSS <code>content:<\/code> strings and similar static string-literal matches.<\/li>\n<\/ul>\n\n<h4>v2.0.0 - 25 Feb, 2026<\/h4>\n\n<ul>\n<li>Major release with redesigned Malware, Vulnerability, and File Integrity scan UX.<\/li>\n<li>Improved malware scanner with detailed problematic-files panel and guided safe-fix actions.<\/li>\n<li>Enhanced vulnerability detection powered by updated API intelligence.<\/li>\n<li>Improved file integrity scanner with clearer legends and performance tuning.<\/li>\n<li>Added dedicated Firewall module with MU runtime guards and login lockout protection.<\/li>\n<li>Added WAF payload protection for SQL injection and command injection.<\/li>\n<li>Security hardening for backup storage and automated cleanup routines.<\/li>\n<\/ul>\n\n<p>For full release history, see <code>CHANGELOG.md<\/code> included in the plugin package.<\/p>","raw_excerpt":"VulnTitan security toolkit for WordPress sites. Detect and remove malware, vulnerable plugins, risky file changes, and comment or form spam.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/232662","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=232662"}],"author":[{"embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jerryscg"}],"wp:attachment":[{"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=232662"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=232662"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=232662"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=232662"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=232662"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pcd.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=232662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}