CRA component cockpit
The Cyber Resilience Act (CRA) progressively obliges manufacturers of products with digital elements to greater transparency and diligence regarding the software components they use. The CRA component cockpit in XICTRAQ derives an SBOM-like component list from the tech stack detected during the scan, flags potentially outdated or end-of-life components with CVE notices, exports a CycloneDX file and tracks the CRA deadlines with an escalation banner. The module is an orientation and documentation tool for preparation — it explicitly does not perform a real dependency scan and assures no conformity. Available from the Business plan.
# Where the components come from
The cockpit does not build a manual inventory of its own and does not access any internal build artifacts. It relies solely on the tech stack that XICTRAQ already detects externally during the scan — that is, what a website reveals via headers, meta tags and embedded resources. From this an SBOM-like component list emerges as a starting point.
Derived from the detected tech stack
During the scan, XICTRAQ detects server software, CMS, frameworks, libraries, CDN, WAF, payment and consent components from server headers, generator meta tags and embedded scripts. Exactly this tech stack is the sole data source of the cockpit. It does not read any internal dependency files — so it knows only what a website makes visible externally and cannot see deeper-nested dependencies.
Timestamp of the last check
The list carries the timestamp of the last tech-stack check (last_tech_check_at). This shows how current the derived components are. A new scan refreshes the list; existing acknowledgements are kept as long as a component's key does not change.
# Component categories
Each detected component is assigned a category. The category helps to sort the list and to judge a component's relevance for CRA preparation — outdated server software or an unmaintained CMS usually weighs more than an embedded font.
Server, CMS, plugin, framework, library and more
The cockpit knows ten categories: server, CMS, plugin, framework, library, CDN, WAF, payment, consent and font. Not every category can be detected externally on every website — the cockpit shows only what the scan actually determined. Components without a detectable version (such as a CDN) appear without a version number and without a version notice.
# How version and CVE notices arise
For components with a detectable version, an offline heuristic compares the version against stored thresholds and known end-of-life data. From this the notices arise — a severity, whether the component is at end of life, a short description, a recommended target version and, where applicable, CVE identifiers with a link. These notices are orientation, not a verified vulnerability statement.
Severity and end-of-life flag
A finding carries a severity from “low” to “critical” and an eol flag if the version branch is no longer maintained. The cockpit counts the potentially outdated components and reports the highest occurring severity (worst_severity) in the overview. The terms follow common practice but are not an official or certified classification.
CVE identifiers, target version and advisory link
Where the heuristic associates known vulnerabilities with a version branch, the notice names the CVE identifiers with a link to the public detail page, a recommended target version (fixed_in) and, where available, a vendor advisory link. Only the single most severe matching finding is shown per software. The associated CVEs refer to the version branch as a whole and do not necessarily affect your specific installation.
Which software the heuristic understands
The heuristic produces version and CVE notices only for a curated list of eight widely used software families whose version a website typically reveals externally: PHP, nginx, Apache httpd and OpenSSL on the server side, the website and shop systems WordPress and Shopware, plus jQuery and Bootstrap on the front end. Each family has its own thresholds below which a finding with a severity is raised. All other detected components still appear in the inventory and the export but receive no version or CVE notice. The list is editorially maintained and not a complete vulnerability catalogue.
“Backport possible” flag on server packages
For software that typically comes from a Linux distribution — PHP, nginx, Apache httpd and OpenSSL — the cockpit additionally marks the notice with “backport possible” (distro_backport). This is a reminder that distributions often apply security fixes without a version bump, so the externally visible version is no reliable patch indicator. For WordPress, jQuery and Bootstrap this flag is not set, because there the version number usually tracks the patch level directly.
# CycloneDX export
The derived component list can be downloaded as CycloneDX 1.5 JSON. CycloneDX is an open, widely used SBOM format. The export serves as a starting point for your own bill of materials and for sharing with advisors or clients — it is explicitly an SBOM-like component list based on the detected tech stack, not a verified, complete bill of materials.
Download as .cdx.json
Via the export endpoint you receive a CycloneDX 1.5 file in JSON format as a download (filename sbom-<host>.cdx.json). It contains the detected components with name and — where known — version and package URL (purl in the form pkg:generic/<name>@<version>). The category itself is not a separate field in the file; instead it determines the CycloneDX type of the component: server, framework, library and CMS are emitted as “library”, all other categories as “application”. If a component carries a CVE notice, the export attaches it as the property “xictraq:cve_hint”. Because the list is derived from the externally visible tech stack, it cannot reflect deeper-nested dependencies — complement it with your internal bill-of-materials data where needed.
Structure of an exported file (shortened example):
{
"bomFormat": "CycloneDX",
"specVersion": "1.5",
"metadata": {
"timestamp": "2026-06-20T08:00:00+00:00",
"tools": [{ "vendor": "XICTRAQ", "name": "CRA-Cockpit" }],
"component": { "type": "application", "name": "beispiel.invalid" },
"properties": [{ "name": "xictraq:disclaimer", "value": "…" }]
},
"components": [
{
"type": "library",
"name": "nginx",
"version": "1.18.0",
"purl": "pkg:generic/nginx@1.18.0",
"properties": [
{ "name": "xictraq:cve_hint", "value": "CVE-2021-23017" }
]
}
]
}# Scope: does the CRA apply to you at all?
The Cyber Resilience Act binds manufacturers of products with digital elements. A plain website and pure software as a service are not covered. That is why a single question sits at the top of the cockpit, and its answer governs what the module shows and reports to you at all.
One question, three answers
You answer “Do you place a product with digital elements on the market?” with yes, no or not yet decided. On “yes” you additionally pick the applicable product kinds from six options: downloadable desktop program, mobile app, browser extension, device with its own software or firmware, remote data processing as an integral part of a product, or software customers run themselves (on-premise). The declaration applies to your account, not per website, and can be changed at any time. While the question is unanswered the cockpit keeps showing the deadlines and states explicitly that the scope has not been clarified yet.
“No” hides deadlines and reminders
If you answer “no”, the deadline tiles disappear from the cockpit and the daily reminder cron skips your account entirely — whoever places no products with digital elements on the market does not carry the CRA obligations, and for them a CRA deadline is not worth a message. The component inventory, the outdated notices and the CycloneDX export are unaffected: they remain useful without any CRA obligation, simply to know what runs on your website.
# CRA deadlines & escalation
The CRA enters into force in stages. The cockpit tracks the two central due dates and shows an escalation banner the closer a date moves. This keeps the deadlines in view without you having to track them yourself. The dates are general points in time from the regulation and not an obligation list tailored to your organization.
Two due dates: reporting obligations and full application
The cockpit tracks two dates: the start of reporting and notification obligations (11 Sep 2026) and the full application of the regulation (11 Dec 2027). For each date the cockpit shows the remaining days (days_until).
Daily reminder cron with a deduplicated alert
A reminder cron runs once a day (06:30 server time). An alert of type “cra_deadline” is triggered solely by the finding: the website must carry at least one component with severity “high” or “critical”. An approaching deadline on its own reports nothing — it applies to every account at the same time and moves by exactly one day per day, which would produce a wave of alerts with no connection to any action. If the next pending deadline — since 11 Sep 2026 the full application on 11 Dec 2027 — additionally falls within a stage of 90, 30 or 7 days, the cron adds the remaining lead time to the alert text; the stage therefore words the alert rather than raising it. The alert goes out through the regular notification channels (email, Slack, Teams and others) and is deduplicated via an alert key (website plus worst severity plus deadline stage), so the same situation reports only once. If the situation changes — a different worst severity or the next stage —, a new alert reports and closes the previous one without an all-clear; at most one “cra_deadline” alert per website is open. Components with a “medium” or “low” notice do not trigger an alert.
The alert closes itself again
If the reason disappears, the cron resolves the open “cra_deadline” alert on its next run by itself — for instance once you have updated the affected component, once the severity drops below “high”, or once you answer the scope question with “no”. That is not a detail: the alert list filters on open, not on acknowledged, and an alert that never closes would stand there permanently and make a settled situation look like an ongoing one. If after your change the website no longer reveals any version number at all, the cron does not close the alert: that would be an all-clear for something nobody could check. Close such an alert by hand.
Escalation banner based on deadline proximity
The closer a due date moves, the more prominent the notice. The threshold is fixed: with more than 90 days lead time “info”, at 90 days or less “warning”, at 30 days or less “critical”. A date that has already passed deliberately falls back to “info” and is shown as “in force for N days”: an expired deadline is a fact, not an incident — kept permanently red it would blunt the display and mask real findings. The banner is a reminder, not a statement about whether and which obligations apply in your specific case. Which CRA obligations affect you must be clarified with qualified advice.
# Acknowledge components
Not every notice is relevant for you: a component may already be patched via a backport, deliberately accepted or not in the critical path at all. With the acknowledge function you mark a component as reviewed, optionally attach a note and thereby remove it from your attention — traceable and reversible at any time.
Acknowledge with an optional note
Via the acknowledge function you mark a component by key (component_key) as acknowledged and can attach a free-text note — for example a note that a distro backport already closes the gap. The cockpit stores the timestamp (acknowledged_at). With the undo flag you reverse an acknowledgement. This documents in a traceable way which notices you have assessed.
# CRA self-assessment
Below the component inventory a six-item orientation checklist expands. It translates typical CRA diligence topics into tangible yes/no questions and shows a progress counter. The checklist is purely client-side, serves orientation only and is not stored — it does not replace a legal assessment.
Six orientation items
The checklist asks six items: whether software components and versions are documented (SBOM-like list), whether a process for security updates and EoL replacement is established, whether known vulnerabilities are monitored and assessed regularly, whether a channel to receive vulnerability reports exists, whether a plan to respond to security incidents is in place and whether third-party components are reviewed contractually and technically. The counter shows the confirmed items (for example “3/6”). The answers stay in the browser only and are not sent to the server.
# Key figures per website
Above the inventory the cockpit summarizes a website's status in three key figures. They mirror the same values that the account-wide overview aggregates and give a quick overview of whether action is needed.
Components total, potentially affected, worst severity
Three tiles show the total number of detected components (components_total), the number of components carrying a notice (outdated_count, labelled “potentially affected”) and the highest occurring severity (worst_severity). Below the number you see how many of the detected components disclose a version number at all — only those can be checked by the heuristic. If there is not a single notice, “no findings” is shown instead of a severity; if not one component discloses a version, it reads “not assessable”. Many servers deliberately hide their version, and then a zero says nothing about the patch level.
# Account-wide overview
Besides the per-website detail view there is an account-wide overview. It lists all websites with the number of components, the number of potentially outdated components and the highest severity — plus the shared CRA deadlines. This shows at a glance where preparation pays off.
All websites at a glance
The overview shows per website the total number of components (components_total), the number of potentially outdated components (outdated_count), the number of components with a readable version (assessable_count) and the highest severity (worst_severity), plus the timestamp of the last tech-stack check. Below it the total of potentially outdated components across all websites is shown — as a prioritization aid for your CRA preparation.
Frequently asked questions
# How it works in detail
The CRA Component Cockpit draws on the results of the running scan and derives a component-based overview that approximates a software bill of materials (SBOM). It captures publicly recognizable building blocks such as server, CMS, frameworks, libraries, CDN, fonts and WAF, each with version and category. The goal is to give you a structured starting point for preparing for the Cyber Resilience Act without having to maintain components manually.
For orientation, the cockpit flags components that appear potentially outdated or vulnerable based on a version and signature heuristic. This heuristic combines indications of end-of-life status with known CVE patterns. However, it does not replace a real dependency scan and does not retrieve live vulnerability data. In particular, many distributions backport security fixes without raising the version number, so a version flagged as conspicuous may already be patched in practice. Treat findings as reference points and verify them against the actual patch status of your system.
Before the deadlines comes the question of whether the CRA applies to you at all. It binds manufacturers who place a product with digital elements on the market. Plain websites and pure software as a service are excluded; that exclusion falls away if you additionally ship a desktop program, a mobile app, a browser extension, a device with its own software, an on-premise variant, or remote data processing as an integral part of a product. You answer this question once per account. If the answer is "no", the cockpit hides the deadlines and stops sending deadline reminders — the component list stays fully usable.
The deadlines shown are based on the central dates of the Cyber Resilience Act: reporting obligations generally apply from 11 September 2026, with full application from 11 December 2027. The countdown is meant to support your scheduling. It does not constitute a legal assessment of your individual obligations; please clarify whether and to what extent the CRA applies to your product with qualified advice.
Reviewed components can be marked as "verified" so you can document your processing status in a traceable way. You can export the entire overview as a CycloneDX SBOM to reuse it in other tools or during a qualified review. The cockpit is intended as a support and readiness tool and provides neither a guarantee nor a certification of CRA conformity. The feature is available from the Business plan upward.