Plugin · MM CRA Toolkit 1.00

EU CRA compliance for WordPress plugins

Done in an afternoon

Selling a commercial WordPress plugin in the EU? Starting September 11, 2026, you need a Software Bill of Materials, a Vulnerability Disclosure Policy, and an EU Declaration of Conformity, plus ongoing vulnerability monitoring. MM CRA Toolkit generates all three documents from your plugin, watches your dependencies on autopilot, and packs everything into one bundle ready to hand to a regulator.
MMCRA: Plugin compliance Dashboard

Regulation context

What the EU Cyber Resilience Act actually requires from WordPress plugin developers

The EU Cyber Resilience Act (Regulation 2024/2847) applies to any "product with digital elements" placed on the EU market. That includes commercial WordPress plugins sold to even one European customer. The substantive obligations come into effect on September 11, 2026, with vulnerability disclosure under Article 13 starting earlier.

Three artifacts you have to produce, plus three controls you have to run:

  • Software Bill of Materials (Annex II) — a machine-readable inventory of every dependency that ships with your plugin. CycloneDX 1.6 is the format ENISA references most often.
  • Vulnerability Disclosure Policy (Article 13) — a published, machine-discoverable channel for researchers to report issues, following ISO/IEC 29147 conventions.
  • EU Declaration of Conformity (Annex V) — a signed declaration identifying your product, the standards applied, and the conformity assessment route.
  • Ongoing vulnerability handling (Article 14) — monitor your dependencies for new advisories, document remediation, and ship security updates without unreasonable delay.
  • Incident reporting (Article 14) — report actively exploited vulnerabilities to ENISA and your customer base within 24 hours of becoming aware.
  • Technical file (Article 31) — keep all of the above on hand for at least 10 years, available to market surveillance authorities on request.

MM CRA Toolkit generates the documents and runs the controls inside your existing WordPress install. The technical file lives in wp-content/uploads/mmcra/ and exports to a single ZIP when you need to hand it to a regulator. Penalties top out at €15 million or 2.5% of global turnover, whichever is higher — which is why most commercial WordPress plugin developers can't afford to defer this work.

What the toolkit does

Eight features. One install. No external account.

Every document and control the CRA expects from a commercial WordPress plugin, produced from inside your existing WordPress admin in about five minutes.

CycloneDX 1.6 SBOM

Walks your plugin's composer.lock and package-lock.json, emits a valid CycloneDX 1.6 JSON document with purls, license fields, and supplier metadata. From any installed plugin, or any uploaded zip.

Vulnerability Disclosure Policy

Drafts a publishable VDP following ISO/IEC 29147 — reporting channel, response SLA, safe-harbor terms, scope, PGP key. Publish as a WordPress page or export to standalone HTML. CRA Article 13.

EU Declaration of Conformity

Per-product Annex V template populated from your Settings. Manufacturer identity, EU representative, applied standards, conformity assessment route. Export HTML, print to PDF, sign, file.

OSV vulnerability monitoring

Checks every dependency in every SBOM against OSV.dev. On-demand in Free. Pro adds a weekly cron, email alerts on new advisories, and AI triage that ranks severity. CRA Article 14.

Plugin Scanner

Static analysis of your code for risky route registrations, capability gaps, missing nonce checks, and known anti-patterns. Pro feature.

One-click Compliance Bundle

The CRA technical file as one ZIP per plugin. SBOM, VDP, signed DoC, Plugin Scanner report, audit log CSV, README manifest. License-watermarked. The artifact you hand a regulator under Article 31.

Tamper-evident audit log

Every artifact you generate is SHA-256 hashed and recorded with timestamp, user, plugin slug, and path. CSV export. Lets you prove integrity of any file after the fact.

5-step Setup Wizard

First-time configuration in under ten minutes. Manufacturer identity, EU representative, VDP, DoC defaults, monitoring. Skippable if you'd rather configure section by section.

Free vs Pro Comparison

Feature Free Pro
Price Free $149/yr - 1 Plugin
$399/yr - 5 Plugins
$999/yr - Unlimited Plugins
Sites covered 1 site 1 site
License required None License key
Distribution WordPress.org mmplugs.com
COMPLIANCE ARTIFACTS
CycloneDX 1.6 SBOM generator Installed plugin (1) All covered plugins
SBOM from uploaded ZIP (third-party code)
Vulnerability Disclosure Policy editor
[mmcra_vdp] shortcode + submission form
Disclosure submissions admin page
EU Declaration of Conformity (CRA Annex V) 1 plugin All covered plugins
Declaration of Conformity HTML export 1 plugin All covered plugins
Compliance Score (0-100)
Tamper-evident audit log (SHA-256)
Audit log CSV export
5-step Setup Wizard
Translation-ready (.pot)
MONITORING AND INCIDENT RESPONSE
OSV.dev vulnerability check On-demand On-demand + weekly
Weekly OSV monitoring + email alerts
Plugin Scanner (static analysis)
AI-assisted advisory triage and drafting (Claude)
Incident Center (ENISA Article 14 deadline tracking)
Webhooks + test ping
PDF compliance report
One-click Compliance Bundle ZIP
Automatic updates via WordPress.org Licensed auto-updater

Inside the toolkit

Everything that comes with the plugin. $149/year for 1 site, $399/year for 5 sites, or $999/year for unlimited sites.

v1.0.0 · tested through WordPress 6.9 · requires PHP 7.4+

  • 5-step Setup Wizard - Setup Wizard walks you from blank install to complete technical file in under ten minutes. Five steps, every field explained.

  • CycloneDX 1.6 SBOMs — Valid CycloneDX 1.6 SBOMs from any installed plugin. Pro adds SBOMs from any uploaded zip, handy for plugins you don't run on the host site.

  • Vulnerability Disclosure Policy - Publishable Vulnerability Disclosure Policy drafted to ISO/IEC 29147 — reporting channel, response SLA, safe harbor, scope, PGP key.

  • EU Declaration of Conformity - Per-plugin EU Declaration of Conformity built to CRA Annex V, fields populated from your Settings. Export HTML, print to PDF, sign, file.

  • OSV.dev vulnerability monitoring - OSV.dev checks every dependency against the advisory database. On demand in Free. Pro adds a weekly cron, email alerts, and AI triage that ranks new advisories by severity.

  • Plugin Scanner - Plugin Scanner (Pro) reads your code for risky route registrations, capability gaps, missing nonce checks, and known anti-patterns.

  • One-click Compliance Bundle - One-click Compliance Bundle (Pro) packs the latest SBOM, VDP, signed DoC, scan report, and audit log into a single regulator-ready ZIP with a README manifest.

  • Tamper-evident audit log - Every artifact is SHA-256 hashed and recorded in a tamper-evident audit log. Pro adds CSV export of the log.

Five steps. Done in under ten minutes.

On first launch, the Setup Wizard walks you through everything: manufacturer identity, EU authorised representative (or a placeholder), Vulnerability Disclosure Policy fields, Declaration of Conformity defaults, and whether to switch on weekly OSV monitoring.

The Wizard is optional. If you'd rather jump straight to the individual settings pages, you can. Either way, you finish with a complete technical file ready to use.

cra-technical-file-example-plugin-20260526-143052.zip
├── README.md
├── sbom/
│   └── example-plugin-20260526-143010.cdx.json
├── vdp/
│   └── vulnerability-disclosure-20260524-091205.html
├── doc/
│   └── doc-example-plugin-20260526-142847.html
├── scan/
│   ├── scan-example-plugin-20260526-142901.html
│   └── scan-example-plugin-20260526-142901.json
└── audit-log/
    └── example-plugin-audit-20260526-143052.csv

One bundle. Every artifact.

Click Compliance Bundle on the dashboard and the toolkit packages the latest SBOM, the published VDP, the signed Declaration of Conformity, the latest Plugin Scanner report (both HTML and machine-readable JSON), and a per-plugin audit log CSV into a single ZIP.

A README manifest names every file with a short description and includes the license fingerprint as a watermark. This is the artifact you hand to a regulator under CRA Article 31, or to an EU customer asking for the technical file.

The bundle ships with the version of every artifact at the moment of export, plus a SHA-256 hash recorded in the audit log so the bundle's integrity can be verified after the fact.

Per-plugin compliance status, at a glance

The dashboard shows the status of every required artifact for every plugin you ship. Bulk actions handle generation, regeneration, and bundling across your entire catalogue.

Deadline pressure

Why you need this before September 11, 2026

From September 11, 2026, the EU Cyber Resilience Act kicks in. If you sell a commercial WordPress plugin to even one EU customer, you're in scope, and regulators can ask for your technical file with as little as 48 hours' notice.

Fines reach €15 million or 2.5% of global turnover. Building this paperwork yourself means writing CycloneDX from scratch, learning ISO/IEC 29147, drafting Annex V boilerplate, and setting up a weekly monitoring job. MM CRA Toolkit rolls all of that into one plugin you can set up in an afternoon.

FAQs

Common questions

Is MMCRA Toolkit hosted by you, or does it run in my WordPress?

Runs in your WordPress. No external account, no subscription to a separate service, no data leaves your site. The only outbound calls are to OSV.dev for vulnerability advisory checks and to MMPlugs.com for license verification and updates.

Does the CRA apply to me if I'm not in the EU?

Yes. CRA applies to products placed on the EU market, not to developers based there. If an EU customer can buy your plugin, you're a manufacturer in scope. Non-EU developers may also need to appoint an authorised representative in the EU under Article 17.

What's the minimum I need by September 11, 2026?

A published Vulnerability Disclosure Policy (Article 13), an SBOM for every shipped product, a signed Declaration of Conformity per product, an ongoing vulnerability handling process, and the technical file ready to produce on 48 hours' notice. MMCRA Toolkit produces all of those in a single configuration pass.

Does it scan my shipped plugin, or just the WordPress install it's running on?

Your shipped plugin. MMCRA reads composer.lock and package-lock.json from the plugin folder, not from the WordPress core or other plugins on the same install. You can also point it at any uploaded zip to scan plugins not installed locally.

What format is the SBOM in?

CycloneDX 1.6 JSON. The format ENISA references most often. Compatible with OWASP Dependency-Track, GitHub Dependency Graph, and any downstream tooling that accepts CycloneDX.