Enable weekly vulnerability monitoring
CRA Article 14 requires manufacturers to monitor their products for new vulnerabilities post-release, not just at release time. The toolkit's Monitor automates this with a weekly OSV.dev check across every plugin you have a saved SBOM for.
Enable
- Go to CRA Toolkit → Settings → Monitor.
- Toggle Enable weekly monitoring.
- Enter your notification email (defaults to your site admin email).
- Save.
The toolkit registers a WordPress cron event mmcra_monitor_run set to fire once per week. The first run is one minute after you save.
What the run does
For every plugin with a saved SBOM:
- Run a Vulnerability Check (same code path as the manual page).
- Diff the advisory IDs found against the baseline stored from the previous run.
- If any new advisory IDs appear, queue an email alert.
- Update the baseline.
If new advisories were found across any plugin, send an email summarizing them, with a link back to the Vulnerability Check page for full details.
If no new advisories appeared, still log an audit entry (mode: monitor_run, alerts: 0) so the cadence is auditable. Regulators want to see "we checked every week," not just "we found things."
Email content
The alert email is plain text and looks like:
Subject: [Your Site] MM CRA Toolkit: new vulnerability advisories detected
Your CRA Toolkit weekly monitoring run found new vulnerability
advisories matching dependencies in your published plugins.
== mm-table-pro ==
- GHSA-xxxx-xxxx-xxxx — Buffer overflow in lodash before 4.17.21
== mm-cra-toolkit ==
- GHSA-yyyy-yyyy-yyyy — XSS in some-dep before 2.3.4
Open the Vulnerability Check page in WP Admin to view full
details and severity scores.
https://yoursite.com/wp-admin/admin.php?page=mmcra-vuln
When the cron fires
WordPress cron is request-triggered — events fire on the next page load after their scheduled time. On low-traffic sites that means the weekly run can drift by a few hours. If you need precise timing, point your host's real cron at:
* * * * * curl -s https://yoursite.com/wp-cron.php?doing_wp_cron > /dev/null
Or use a managed WP cron service.
License-gated
The Monitor skips its run if the license is past the 14-day grace window. The skip is logged to the audit log with mode: monitor_skipped, reason: license so the gap is visible to auditors. Re-activating the license picks up where the Monitor left off — the next tick runs normally.
Disable
Toggle Enable weekly monitoring off in Settings. The toolkit unschedules the cron immediately. Baselines remain in settings — re-enabling later picks up from the most recent baseline.