Skip to content

Security incidents register

The incidents register lets you document security events in the store. It supports compliance with the Cyber Resilience Act (CRA) - an EU regulation requiring an incident register for products with digital elements.

The Cyber Resilience Act (CRA) is a European Union regulation establishing cybersecurity requirements for products with digital elements. Sellers are obliged to:

  • Maintain a security incidents register
  • Report incidents to supervisory authorities within 24 hours
  • Inform customers about discovered security vulnerabilities
  • Document corrective actions

Go to WooCommerce > Polski > Tools > Security Incidents. The register is available to users with the manage_woocommerce permission.

Click Add Incident and fill in the form:

FieldTypeRequiredDescription
TitletextYesShort incident description
Detection datedatetimeYesWhen the incident was detected
Occurrence datedatetimeNoWhen the incident actually occurred
CategoryselectYesIncident type
PriorityselectYesCritical / High / Medium / Low
DescriptiontextareaYesDetailed event description
Affected productsmultiselectNoWooCommerce products affected
Impact scopeselectYesNumber of affected customers
Actions takentextareaNoDescription of corrective actions
StatusselectYesNew / In Progress / Resolved / Closed
Responsible personselectNoAssigned WordPress user
Reported to authoritycheckboxNoWhether reported to supervisory authority
Report datedatetimeNoWhen reported to authority
Customers notifiedcheckboxNoWhether customers were notified
Notification datedatetimeNoWhen customers were notified
AttachmentsfileNoLogs, screenshots, reports
CategoryDescription
Data breachUnauthorized access to personal data
MalwareMalware, skimmer, backdoor
DDoS attackDenial of service attack
Unauthorized accessAdmin or customer account breach
Software vulnerabilityDiscovered vulnerability in plugin or theme
PhishingPhishing attack targeting store customers
Data manipulationUnauthorized data change (prices, orders)
OtherOther security events
ScopeDescription
No impactIncident detected and blocked
Single customerAffects 1 customer
Several customersAffects 2-10 customers
Many customersAffects 11-100 customers
MassAffects over 100 customers

The register displays a table of all incidents with columns:

  • ID - incident number
  • Date - detection date
  • Title - short description
  • Category - incident type
  • Priority - colored label (red/orange/yellow/gray)
  • Status - current state
  • Responsible - assigned person
  • Report - whether reported to supervisory authority

The list allows filtering incidents by:

  • Category
  • Priority
  • Status
  • Date (date range)
  • Responsible person

Sorting by any column (ascending/descending).

The search field searches incident titles and descriptions.

Each incident has a timeline documenting the chronology of actions:

2025-06-15 08:30 - Incident detected by monitoring system
2025-06-15 08:45 - Incident assigned to Jan Kowalski
2025-06-15 09:00 - Log analysis started
2025-06-15 10:30 - Source identified - unauthorized access through vulnerability in plugin X
2025-06-15 11:00 - Plugin X updated to latest version
2025-06-15 11:30 - All administrator passwords changed
2025-06-15 12:00 - Incident reported to UODO
2025-06-15 14:00 - Notification sent to affected customers
2025-06-15 15:00 - Status changed to "Resolved"

Timeline entries are added automatically (status changes, assignments) and manually (notes, actions).

Click Export CSV above the incidents table. The export includes:

ColumnDescription
incident_idIncident number
titleTitle
detection_dateDetection date
occurrence_dateOccurrence date
categoryCategory
priorityPriority
descriptionDescription
affected_productsAffected product IDs
impact_scopeImpact scope
actions_takenActions taken
statusStatus
responsible_personResponsible person
reported_to_authorityWhether reported to authority
report_dateReport date
customers_notifiedWhether customers notified
notification_dateNotification date
resolution_dateResolution date

The export can be limited to:

  • A selected date range
  • A selected category
  • A selected status
// Hook to modify export data
add_filter('polski/security_incidents/export_data', function (array $data): array {
// Add a custom column
foreach ($data as &$row) {
$row['custom_field'] = 'value';
}
return $data;
});

The system sends automatic notifications:

EventRecipientsChannel
New critical incidentAll administratorsEmail
Incident status changeResponsible personEmail
Incident without action > 24hResponsible personEmail
Approaching report deadlineAdministratorsEmail

Notification configuration: WooCommerce > Polski > Tools > Incidents > Notifications.

The module can automatically register certain events:

  • Failed logins - series of failed login attempts (brute force)
  • Core file changes - modification of WordPress core files
  • New admin user - creation of an account with administrator role
  • Permission changes - elevation of existing account permissions

Automatically detected events are registered with a category and priority but require manual verification (status “New”).

// Disable automatic detection
add_filter('polski/security_incidents/auto_detect', '__return_false');
do_action('polski/security_incidents/create', [
'title' => 'SQL injection attempt detected',
'category' => 'unauthorized_access',
'priority' => 'high',
'description' => 'SQL injection attempt detected in the product_id parameter.',
'detection_date' => current_time('mysql'),
'status' => 'new',
]);

Notifications do not arrive - check the WordPress email configuration. Using an SMTP plugin (e.g. WP Mail SMTP) is recommended instead of the default wp_mail() function.

CSV export returns an empty file - check filtering. If filters are set too restrictively, the result may be empty.

Automatic detection generates too many alerts - adjust thresholds in module settings. The default threshold for failed logins is 5 within 15 minutes - this may be too low for stores with many users.

Report issues: github.com/wppoland/polski/issues

This page is for informational purposes only and does not constitute legal advice. Consult a lawyer before implementation. Polski for WooCommerce is open source software (GPLv2) provided without warranty.