Cybersecurity for Machinery Makers
Machines now ship with controllers, displays, telematics units and companion apps, most of them built by suppliers. From 2027 the Machinery Regulation and the Cyber Resilience Act both expect you to know what software is on each machine and to keep it secure for years. CRACI records what goes into every software build.
Two regulations, one question: what software is on the machine?
From 2027, a machine with a controller, an operator display or a data connection answers to two EU regulations. Both start from the same question: which software is on this machine, version by version, and what is inside it.
- Cyber Resilience Act reporting of actively exploited vulnerabilities and severe incidents applies.
- The Machinery Regulation, (EU) 2023/1230, applies and replaces the Machinery Directive.
- The Cyber Resilience Act, (EU) 2024/2847, applies in full.
Machinery Regulation
Two essential health and safety requirements in Annex III deal with cybersecurity:
- 1.1.9, protection against corruption. Connecting another device to the machine, directly or remotely, must not lead to a hazardous situation. Software and data that are critical for the machine's compliance with the essential health and safety requirements must be identified and protected against accidental or intentional corruption. The machine must identify the software installed on it that it needs to operate safely, and provide that information at all times. It must also collect evidence of legitimate or illegitimate interventions in that software or its configuration.
- 1.2.1, safety and reliability of control systems. Control systems must withstand reasonably foreseeable malicious attempts by third parties that lead to a hazardous situation. Under 1.2.1(f), they must keep a tracing log of interventions and of the versions of safety software uploaded after the machine was placed on the market, for five years after the upload.
Cyber Resilience Act
A machine with a data connection, or a part of it sold on its own, is a product with digital elements. The manufacturer must exercise due diligence on the third-party components it integrates, draw up an SBOM covering at least the top-level dependencies, handle vulnerabilities for the support period, which is at least five years unless the product is expected to be in use for less, and keep the technical documentation for at least ten years or for the support period, whichever is longer.
| Requirement | Machinery Regulation | Cyber Resilience Act | What it needs from the software side |
|---|---|---|---|
| Know the installed software | 1.1.9: the machine identifies the software it needs to operate safely, at all times | An SBOM covering at least the top-level dependencies | A record of every component in each software version |
| Protect it from corruption | 1.1.9 and 1.2.1: protect safety software and withstand malicious attempts | Essential cybersecurity requirements for the product | Known components, and builds that a poisoned dependency cannot reach into |
| Record changes and versions | 1.2.1(f): log of safety software versions uploaded after placing on the market | Technical documentation for the product placed on the market | Version history per build and per release |
| Handle vulnerabilities | Not named as such | Vulnerability handling for the support period; reporting since 11 September 2026 | Monitoring shipped components against new advisories |
| Keep the records | Tracing log: five years after each upload | Technical documentation: at least ten years or the support period | SBOMs exported into the technical documentation |
Does CRA compliance cover the Machinery Regulation?
Not automatically. The Cyber Resilience Act gives no presumption of conformity with the Machinery Regulation. Its recital 53 says that meeting the CRA's essential requirements could facilitate compliance with the Machinery Regulation's requirements on protection against corruption and on the safety and reliability of control systems. It also says that the manufacturer has to demonstrate this, for example by applying harmonised standards after a risk assessment, and that the conformity assessment procedures of both regulations still apply.
The harmonised standard being written for 1.1.9 is EN 50742, Safety of machinery: Protection against corruption. As of November 2026 it was a final draft, FprEN 50742, covering 1.1.9 and the related points of 1.2.1, and until a final version is cited in the Official Journal it gives no presumption of conformity. It combines the risk assessment of EN ISO 12100 with security concepts from IEC 62443, and accepts the consistent use of IEC 62443-4-1, IEC 62443-3-3 and IEC 62443-4-2 as an equivalent way to meet its protection goals. IEC 62443-4-2 sets the technical security requirements for control system components, graded by security capability level. In Germany, the test principles GS-IFA-M25 of July 2026 turn protection against corruption into 66 test criteria, using the terms of prEN 50742. One of them, T46, asks that the product can provide its installed software version and configuration on request. Answering that for every configuration takes a record of what each software version contains.
The Machinery Regulation has a presumption of its own, and it runs through a different route: EU cybersecurity certification schemes adopted under the Cybersecurity Act, Regulation (EU) 2019/881. A certificate or statement of conformity under such a scheme presumes conformity with 1.1.9 and 1.2.1 as far as it covers those requirements.
So one risk assessment and one set of evidence can serve both regulations, but you show conformity to each. If your machine has a data connection, plan for both. The software evidence, meaning SBOMs, vulnerability records and the update history, is the part they share.
In January 2026 machinery industry associations asked for 1.1.9 and 1.2.1(f) to be postponed, and in March 2026 for them to apply from the CRA's date, 11 December 2027. It is a request, not law: as of November 2026 no postponement had been adopted. The dates on this page are the dates in the regulations.
Which machines and which software are in scope
- Construction, materials-handling, mining and industrial machines fall under the Machinery Regulation, and under the CRA as well when the machine or its parts have a data connection.
- Agricultural and forestry tractors covered by Regulation (EU) No 167/2013 are excluded from the Machinery Regulation, except for machinery mounted on them. The CRA's list of exclusions does not name that regulation, so a connected tractor can be in CRA scope.
- Road vehicles type-approved under Regulation (EU) 2019/2144 are excluded from the CRA.
- Components sold on their own. The CRA also applies to software and hardware components placed on the market separately. A supplier that sells an ECU or a telematics unit on its own is a manufacturer under the CRA in its own right. Where the unit is only built into the machine, the machine maker carries the obligation for the whole machine and must exercise due diligence on the supplier's component.
This is general information, not legal advice. Check your own product's classification.
Inside one machine, the software comes from different places, and only the team that builds a piece of software can say reliably what is in it. As we hear from machine makers, bare-metal ECUs hold little open source, while Linux, Android and Windows software holds a lot.
| Software | Typical origin | Open source share | Who can produce a reliable SBOM | Where CRACI fits |
|---|---|---|---|---|
| Machine controller application | In-house or supplier | Varies | The team that builds it | When it is built on GitHub Actions on Linux |
| ECU firmware (hydraulics, steering, power) | Supplier | Usually low: proprietary and model-generated code | The supplier | Not directly: through the supplier's SBOM, added to CRACI |
| Linux display or HMI image | In-house or supplier | High | The team that builds the image | Yes: Yocto and other embedded Linux builds |
| Telematics gateway | In-house or supplier | High | The team that builds it | Yes, when it is built on GitHub Actions |
| Diagnostic and companion apps | In-house | High | The app team | npm, PyPI, Go and Cargo builds yes; Android with Gradle, iOS and Windows apps not today |
| Cloud back end | In-house | High | The service team | Yes, for builds on GitHub Actions |
Why machinery is harder than consumer electronics
Low volume, high variety. A machine maker can have hundreds of platforms on the market, sell a handful of units of each per year, and configure many machines to order. Every configuration is a different set of software, so an SBOM for every build matters more than an SBOM for every product line.
Long lifetimes. Machines stay in service for a decade or more, while suppliers change or go out of business. The record of what went into a software version has to be made when it is built, because it cannot be reconstructed years later.
Supplier software dominates, and supplier SBOMs are often poor. We hear of supplier SBOMs with missing components, no package URLs or CPEs, no licenses and no hashes, some written by hand and failing schema validation. Binary analysis of a flashed ECU is a stopgap: it guesses at the contents instead of recording them.
The risk sits in the connected layers. Much ECU logic is generated from models and contains little open source. The open source, and the network exposure, concentrate in the Linux, connectivity and app layers, so spend your effort there first.
An illustrative example: the software stack of a fictional wheel loader platform, from the cloud down to the ECUs.
- Cloud back end and companion appIn-house. Mostly open source and network-facing. Cyber Resilience Act.
- Telematics gatewayEmbedded Linux, mostly open source, connected to the mobile network. Cyber Resilience Act, and 1.1.9 for the remote connection.
- Operator displayEmbedded Linux image with a UI framework, mostly open source, connected to the machine bus and to service tools. Cyber Resilience Act and 1.1.9.
- Machine controllerIn-house application on a supplier platform, safety-relevant. 1.1.9 and 1.2.1, and the Cyber Resilience Act where it can be reached over a connection.
- Hydraulic, steering and engine ECUsSupplier firmware, proprietary and model-generated, little open source, safety-relevant. 1.1.9 and 1.2.1; the Cyber Resilience Act through the machine.
The open source and the network exposure sit in the top three layers, which is also where your own build pipelines usually are. Start there.
How to prepare, step by step
Machine features such as software identification on the machine and intervention logs are part of the machine's design. The steps below cover the software that goes into it.
- Inventory the software on each machine platform. List every piece of software on each platform and configuration, and mark what is relevant to safety. This is the starting point for 1.1.9, which asks the machine to identify the software it needs to operate safely.
- Separate what you build from what you integrate. Software your teams build and software that arrives from suppliers need different evidence routes. For the first you produce the record yourself; for the second you set requirements and check what you receive.
- Record every release build of your own software. Produce an SBOM from every release build, keep it per version, and monitor it for new vulnerabilities for the whole support period.
- Set a minimum standard for supplier SBOMs. Agree the format and the fields you need, such as package URLs or CPEs, licenses and hashes, validate every delivery, and send it back when it fails. See how suppliers answer customer SBOM requests.
- Plan retention for the machine's life. Keep CRA technical documentation for at least ten years or the support period, whichever is longer, and the 1.2.1(f) safety software log for five years after each upload. Plan it for the life of the machine, not the length of the project.
- Run vulnerability handling and reporting. CRA reporting of actively exploited vulnerabilities and severe incidents has applied since 11 September 2026. Decide who triages findings, who owns each fix and who reports.
- Lock down the build itself. Run each build in an isolated environment that can reach only the sources it needs, so a compromised dependency cannot reach your source code, secrets or release.
Where CRACI fits
CRACI runs your GitHub Actions builds on its own runners and records what goes into each one. For a machine maker, that covers the software your teams build and the supplier SBOMs you collect.
Build records for the machine software you build
Run your controller services and your Linux display and telematics images, Yocto and other embedded Linux builds included, on CRACI's GitHub Actions runners, up to 32 vCPUs, on x86-64 or native ARM64. While the build runs, CRACI records every package and file it pulls in, including the hidden dependencies no recipe or lockfile lists, and marks each job's SBOM with a completeness state. In a core-image-sato build, CRACI's SBOM had every component in Yocto's own SBOM plus 88 it missed, with a package URL for each of the 653 Rust crate versions. More on Yocto builds on CRACI.
Supplier SBOMs next to your own
Add SBOMs from your ECU, display and telematics suppliers, and the bought-in components are monitored alongside the software you build. When a new vulnerability lands in a supplier's Linux stack, it shows up in the same record as your own.
Which machines are affected, and since when
CRACI keeps re-evaluating monitored SBOMs as new vulnerabilities are published. Build history shows which builds contained the vulnerable dependency, direct or transitive, within your plan's retention, and the inventory view shows which software versions are deployed to which products. Security teams triage each finding and route it to the team that owns the fix, and a policy gate can keep a specific CVE out of every later build.
Evidence for the technical file
CRACI supplies the software supply chain evidence your technical documentation needs: build-time SBOMs exported as CycloneDX or SPDX, with transitive dependencies, declared licenses and the vulnerabilities found in their components, plus vulnerability records and build history. For machines in CRA scope, CRACI prepares the content of the CRA notifications, and a person at your company submits them through the Single Reporting Platform. The conformity assessment, the EU declaration of conformity and the CE marking stay with you, the manufacturer.
A build that reaches only what it needs
Each job runs in its own isolated virtual machine under an egress policy that is validated before the job starts and fails closed. With a default-deny policy, the build reaches your package sources and nothing else, and a connection to any other host is blocked and raises an alert.
For suppliers of ECUs, displays and telematics units
Machine makers now set SBOM requirements for the software they buy, such as package URLs or CPEs, licenses, hashes and a format that passes validation, and send back files that fail. If you build on GitHub Actions, CRACI produces the SBOM from the build itself, so it lists what actually went into the release, including the components no lockfile names, with a package URL and declared license for every component. Check the export against the full list of fields your customer asks for. More on answering customer SBOM requests.
When CRACI is not the answer
CRACI fits the software you build. It does not fit these cases:
- Not for a machine maker that only integrates supplier ECUs and builds no software itself. CRACI records builds; it cannot produce an SBOM for a binary someone else built. If almost all your software arrives flashed on supplier hardware, your tools are supplier SBOM requirements, SBOM validation and, as a stopgap, binary analysis, which CRACI does not do (see binary analysis compared with a build record). CRACI helps you through your suppliers' builds and by monitoring the SBOMs they give you.
- Not for bare-metal or RTOS firmware built outside GitHub Actions, or built on Windows or macOS. CRACI runs GitHub Actions jobs on Linux runners today. Other CI systems, such as GitLab CI and Jenkins, and Windows and macOS runners are on the roadmap.
- Not for Android companion apps built with Gradle, or for Java services. Maven and Java are on the roadmap, not supported today. iOS apps need macOS runners, which are on the roadmap too.
- Not for machines already in the field whose software was built years ago. CRACI records builds as they run.
- Not the controls on the machine. Identifying the installed software on the machine, collecting evidence of interventions and keeping the tracing log are machine features under 1.1.9 and 1.2.1. CRACI does not provide them, does not sign firmware and does not run the conformity assessment.
- Not long-term archival by itself. Build records are kept for your plan's retention period. Export the SBOMs into your technical documentation for the ten-year horizon.
Machinery cybersecurity, explained
Common questions about the Machinery Regulation, the CRA and the software on a machine
When does the EU Machinery Regulation apply?
From 20 January 2027. Regulation (EU) 2023/1230 replaces the Machinery Directive on that date. The text first published gave 14 January 2027; a corrigendum corrected it to 20 January 2027. Machinery placed on the EU market from then on must meet its essential health and safety requirements, including the cybersecurity-related ones in Annex III, 1.1.9 and 1.2.1.
What are the cybersecurity requirements in the Machinery Regulation?
Annex III 1.1.9, protection against corruption: connecting another device must not create a hazard, safety-critical software and data must be protected, the machine must identify its safety-relevant software at all times and collect evidence of interventions. Annex III 1.2.1: control systems must withstand reasonably foreseeable malicious attempts and keep a tracing log of safety software versions uploaded after the machine was placed on the market.
Does the Cyber Resilience Act apply to machinery?
Yes, when the machine or a part of it is a product with digital elements, which in practice means it has a data connection. The CRA does not exclude machinery. Its reporting obligations have applied since 11 September 2026, and it applies in full from 11 December 2027, eleven months after the Machinery Regulation.
If a machine complies with the CRA, does it also comply with the Machinery Regulation?
Not automatically. There is no presumption of conformity between the two. The CRA says meeting its requirements could facilitate compliance with 1.1.9 and 1.2.1, but the manufacturer has to demonstrate it, and both conformity assessment procedures apply. The Machinery Regulation's own presumption runs through EU cybersecurity certification schemes. One set of evidence can serve both.
Does a machine maker need an SBOM?
For a machine in CRA scope, yes: the CRA requires the manufacturer to draw up an SBOM covering at least the top-level dependencies. The Machinery Regulation does not name SBOMs, but 1.1.9 asks the machine to identify the software it needs to operate safely, which is hard to keep accurate across many configurations without a record of every software version.
Who is responsible for the software in a supplier's ECU?
Both, in different roles. A supplier that places an ECU on the market on its own is a manufacturer under the CRA for that component. The machine maker is responsible for the whole machine and must exercise due diligence on the components it integrates, which is why machine makers now ask suppliers for SBOMs that meet a set standard.
Do tractors fall under the Machinery Regulation or the CRA?
Agricultural and forestry tractors covered by Regulation (EU) No 167/2013 are excluded from the Machinery Regulation, except for machinery mounted on them. The CRA's exclusions do not name that regulation, so a connected tractor can be in CRA scope. Check your own product's classification; this is general information, not legal advice.
Which CI systems and build machines does CRACI support?
CRACI runs GitHub Actions jobs on Linux runners, x86-64 and ARM64, from 1 to 32 vCPUs. Other CI systems, such as GitLab CI and Jenkins, are on the roadmap, as are Windows and macOS runners.
See what goes into your machine software builds
Book a demo and we will show every component your controller, display and telematics builds pull in, and which of them are vulnerable
Book a demo