Skip to content

CRA incidents (Cyber Resilience Act)

El módulo CRA incidents le ayuda a cumplir la obligación de notificación del Art. 14 del Reglamento de Ciberresiliencia de la UE: registra vulnerabilidades explotadas activamente e incidentes de seguridad graves, hace el seguimiento del plazo de 24 horas para la alerta temprana y prepara una exportación JSON estructurada para su presentación en la ENISA Single Reporting Platform (SRP).

El Art. 14 del CRA define tres umbrales de notificación para los fabricantes de productos digitales:

UmbralPlazoAlcance
Alerta temprana24hHecho de la detección, componente, evaluación preliminar
Informe del incidente72hCausa raíz, alcance, mitigaciones aplicadas
Informe final14 díasCausa raíz completa, corrección, recomendaciones

El módulo calcula el plazo de 24h automáticamente a partir de discoveredAt. Los demás plazos (72h, 14 días) deben seguirse manualmente - quedan fuera del alcance FREE.

Vaya a Polski > CRA incidents > Record incident. El formulario:

CampoNotas
TitleTítulo breve (obligatorio)
Affected componentNombre del producto o módulo (p. ej. polski-free, custom-checkout-module)
Affected versionsRango de versiones (p. ej. <= 2.0.4)
ReporterPersona que registró la notificación
External referenceIdentificador CVE / gestor de incidencias / CVD (opcional)
Kindactively_exploited_vulnerability, security_incident, near_miss
Severitycritical, high, medium, low
SummaryDescripción técnica (obligatorio)

Tras guardar, el incidente queda en estado Open y tiene deadlineAt = discoveredAt + 24h.

Para cada incidente Open, la lista ofrece la acción Dispatch notification. Se dispara en paralelo:

  • Webhook (POST JSON) a la URL de la opción polski_cra_incident_webhook
  • Correo electrónico con un resumen legible a la dirección de la opción polski_cra_incident_email

Ambas opciones se configuran en Polski > Settings > CRA incidents. Tras una respuesta 2xx del webhook o un envío de correo correcto, el incidente pasa al estado Notified y almacena notifiedAt.

La acción Export JSON devuelve cra-incident-<id>-<timestamp>.json con Content-Type: application/json. La estructura sigue el borrador del esquema de la ENISA Single Reporting Platform - los campos cubren la identidad del fabricante, el componente, el momento de detección, la gravedad, el tipo de incidente y el resumen.

Ejemplo:

{
"reference_id": "CVE-2026-1234",
"kind": "actively_exploited_vulnerability",
"severity": "high",
"title": "Stored XSS in checkout notes",
"affected_component": "polski-free",
"affected_versions": "<= 2.0.4",
"discovered_at": "2026-04-19T08:12:00+00:00",
"deadline_at": "2026-04-20T08:12:00+00:00",
"summary": "..."
}
// Después de registrar un incidente (antes de cualquier notificación).
add_action('polski_cra_incident_recorded', function (int $id, $incident): void {
// Su integración: Jira, PagerDuty, Slack
}, 10, 2);
// Cuando quedan menos de 2h para el plazo de 24h.
add_action('polski_cra_incident_deadline_approaching', function ($incident): void {
// Escalar al DPD
});

La versión 2.1.0 introduce la tabla {$wpdb->prefix}polski_cra_incidents. La migración se ejecuta automáticamente en la activación. Si no lo hace, fuércela manualmente:

Terminal window
wp polski migrate --module=cra
  • UI y acciones: manage_woocommerce
  • Webhook / correo electrónico: configurables libremente (sin requisito de capacidad - son canales salientes)
  • El módulo no realiza el seguimiento automático de los umbrales de 72h / 14 días (solo 24h)
  • La detección de incidentes es manual - no escaneamos registros
  • El webhook no tiene firma HMAC (previsto para PRO)
  • El formulario no admite adjuntos binarios - añádalos manualmente a la presentación en la ENISA SRP