Chapter 6 of 12
Module 6: Vulnerability Management and Continuous Monitoring
Details requirements for continuous monitoring of software, handling vulnerabilities (including in third-party and open-source components), and providing security updates.
1. Where This Fits in the CRA Lifecycle
In Modules 4 and 5 you saw that the EU Cyber Resilience Act (CRA) requires security-by-design and ongoing risk management.
This module focuses on what happens after your product is on the market:
- You must monitor your product for new vulnerabilities.
- You must handle vulnerabilities in:
- your own code
- third-party proprietary components
- open-source software (OSS) components
- You must provide free security updates for at least the expected product lifetime or the minimum support period set by the CRA (whichever is longer, once specified in the final text and related standards).
- You must cooperate with vulnerability disclosure processes, including coordinated vulnerability disclosure (CVD) with security researchers.
Think of this module as: “What are my ongoing duties once users are actually using my software?”
2. CRA Obligations for Monitoring Products in the Field
Under the CRA (political agreement reached 2023–2024; final text expected to apply after a transition period), manufacturers must:
- Continuously monitor:
- Public vulnerability databases (e.g., NVD, CERTs, EU-level advisories)
- Supplier and open-source project security advisories
- Bug bounty platforms or internal reporting channels
- Detect and assess:
- New vulnerabilities affecting your product’s components
- Exploited vulnerabilities ("in the wild")
- Misconfigurations that undermine security-by-default
- React appropriately:
- Prioritize vulnerabilities by severity and exploitability
- Provide security updates and/or mitigations in a timely way
- Inform users and authorities when required (e.g., for actively exploited or severe vulnerabilities)
In practice, this means you must have a documented vulnerability management process and not just rely on ad‑hoc fixes.
3. Example: Monitoring in a Connected Home Router
Imagine you are the manufacturer of a Wi‑Fi router sold across the EU.
Your continuous monitoring might look like this:
- You maintain a software bill of materials (SBOM) listing all libraries and components (e.g., Linux kernel version, OpenSSL, BusyBox, web UI framework).
- Every day, an automated tool checks:
- CVE feeds for vulnerabilities affecting these components
- Security advisories from the Linux distribution and OpenSSL project
- When a new critical OpenSSL vulnerability is published:
- Your security team receives an alert.
- They check: Does our router use the vulnerable version? If yes:
- Assess impact: Can this lead to remote code execution or data theft?
- Evaluate exploitability: Is there public exploit code?
- They schedule an urgent security patch release and prepare a security advisory for users.
- They ensure the update is pushed automatically (security-by-default), or at least strongly prompted.
Under the CRA, failing to do this systematically could be considered non‑compliance with post‑market cybersecurity obligations.
4. Thought Exercise: Design a Simple Monitoring Plan
Imagine you are responsible for a cloud-based note‑taking web app used by EU customers.
Sketch a minimal monitoring plan (just think it through, or jot down notes):
- Sources to monitor
- Which vulnerability databases or feeds would you check?
- Which third‑party vendors’ advisories would you follow (e.g., your cloud provider, database vendor, major frameworks)?
- Tools and automation
- What tools could you use for:
- Dependency scanning (e.g., GitHub Dependabot, GitLab Dependency Scanning, Snyk, OWASP Dependency-Check)?
- Container image scanning?
- Response rules
- How quickly would you aim to patch:
- Critical remotely exploitable bugs?
- Medium‑severity issues?
- Who on your (hypothetical) team would approve emergency patches?
Compare your ideas with this minimal CRA‑aligned checklist:
- [ ] At least weekly automated scans of dependencies for known vulnerabilities.
- [ ] Named person or role responsible for reviewing alerts.
- [ ] Documented criteria for what counts as critical and high severity.
- [ ] A basic playbook: detect → assess → patch/mitigate → notify users if needed.
5. Handling Vulnerabilities in Own, Third‑Party, and Open‑Source Code
The CRA makes it clear: you are responsible for the overall security of the product, even if vulnerabilities come from third‑party or open‑source components.
A typical CRA‑aligned vulnerability handling process:
- Identification
- From monitoring tools, user reports, bug bounty submissions, or researchers.
- Triage and risk assessment (ties to Module 5)
- Classify severity (often using CVSS or similar).
- Check whether there is known exploitation.
- Map the vulnerability to affected versions and configurations.
- Remediation strategy
- Own code: fix the bug, add tests, maybe add extra logging.
- Third‑party proprietary: request or obtain a patch from the vendor; decide whether to replace or remove the component if vendor is slow.
- Open‑source: pull upstream patches, backport if needed, or temporarily disable vulnerable features.
- Release and communication
- Provide a security update (patch, configuration change, or workaround).
- Publish release notes / advisories explaining impact and urgency.
- Documentation and learning
- Update your risk assessment, SBOM, and secure development guidelines.
- Record the incident in your post‑market surveillance log (a CRA expectation).
6. Practical Example: Automating Dependency Checks
Below is a simplified example using Node.js with `npm audit` and a GitHub Actions workflow to continuously check for vulnerable dependencies.
```yaml
.github/workflows/security-audit.yml
name: Security Audit
on:
schedule:
- cron: '0 3 *' # run daily at 03:00 UTC
workflow_dispatch: # allow manual run
jobs:
npm-audit:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Run npm audit
run: |
npm audit --json > audit-report.json || true
- name: Fail on high/critical vulnerabilities
run: |
node << 'EOF'
const fs = require('fs');
const report = JSON.parse(fs.readFileSync('audit-report.json', 'utf8'));
const vulnerabilities = Object.values(report.vulnerabilities || {});
const highOrCritical = vulnerabilities.filter(v =>
['high', 'critical'].includes(v.severity)
);
if (highOrCritical.length > 0) {
console.error('High/critical vulnerabilities found:', highOrCritical.length);
process.exit(1); // fail the pipeline
}
console.log('No high/critical vulnerabilities found.');
EOF
```
This kind of automation supports CRA obligations by:
- Providing continuous monitoring of dependencies.
- Creating an audit trail of security checks.
- Helping you react quickly when new vulnerabilities appear.
7. Security Updates and Minimum Support Periods under the CRA
The CRA introduces explicit obligations to provide security updates:
- Free security updates
- Manufacturers must provide security updates at no additional cost to users.
- Updates must be designed to minimize disruption and maintain security-by-default (e.g., automatic updates enabled by default where feasible).
- Support period
- You must support the product for at least its expected lifetime as declared in your documentation, or for a minimum period specified by the CRA/implementing acts, whichever is longer (once fully specified in the final legal and standardization texts).
- You must clearly inform users about:
- How long they will receive security updates.
- How updates will be delivered (automatic, manual, etc.).
- Timeliness
- The CRA expects you to address vulnerabilities without undue delay, especially for critical vulnerabilities.
- Sectoral rules (e.g., NIS2 for essential entities) may impose stricter timelines in some contexts.
- End‑of‑support
- When the support period ends, you must clearly communicate this to users and avoid giving a false impression that the product is still secure.
In short: you cannot ship a product and then silently stop patching it while people are still using it in the EU.
8. Quiz: Security Update Obligations
Test your understanding of CRA security update expectations.
Which statement best reflects CRA expectations about security updates?
- Manufacturers may charge users extra for security updates after the first year.
- Manufacturers must provide free security updates for at least the declared expected lifetime or the CRA minimum period, whichever is longer.
- Manufacturers only need to patch vulnerabilities in their own code, not in third‑party components.
Show Answer
Answer: B) Manufacturers must provide free security updates for at least the declared expected lifetime or the CRA minimum period, whichever is longer.
Under the CRA, manufacturers must provide security updates free of charge and for at least the product’s expected lifetime as declared, or any CRA‑mandated minimum period, whichever is longer. They are responsible for the whole product, including third‑party components.
9. Coordinated Vulnerability Disclosure (CVD) and Reporting
The CRA aligns with modern coordinated vulnerability disclosure (CVD) practices.
Manufacturers are expected to:
- Provide a clear reporting channel
- e.g., `security@company.com`, a web form, or a security.txt file on your domain.
- Describe how to report vulnerabilities securely (e.g., encrypted email).
- Acknowledge and coordinate
- Confirm receipt to the reporter.
- Agree on a reasonable disclosure timeline (for example, 90 days, adjustable for complexity and severity).
- Assess and fix
- Integrate the report into your vulnerability management process.
- Prepare patches, mitigations, and advisories.
- Notify authorities when required
- For certain serious or actively exploited vulnerabilities, CRA and related EU rules may require notification to national authorities or CSIRTs.
- Respect good‑faith researchers
- Policies should make it clear that good‑faith security research is welcomed, as long as it respects legal boundaries and user privacy.
CVD is not just “nice to have” – it is part of demonstrating that you take post‑market cybersecurity seriously.
10. Activity: Draft a Simple CVD Policy Outline
Mentally (or on paper) outline a one‑page CVD policy for a hypothetical mobile app.
Include at least:
- Scope
- Which domains, apps, and services are in scope?
- How to report
- Contact details and preferred formats.
- Optional: PGP key for encrypted reports.
- What you promise
- Acknowledge reports within X days.
- Provide a status update within Y days.
- Not to take legal action against good‑faith researchers following the policy.
- What you ask from researchers
- Avoid privacy violations and data destruction.
- Avoid service disruption.
- Give you reasonable time to fix before public disclosure.
Think about how this policy helps you comply with CRA expectations on vulnerability handling and how it improves trust with your users.
11. Review Key Terms
Flip the cards (mentally) to review important concepts from this module.
- Continuous monitoring (under CRA)
- An ongoing process where manufacturers systematically track vulnerabilities, threats, and incidents affecting their products in the field, using tools, feeds, and procedures to detect and assess new risks.
- Vulnerability management
- A structured process for identifying, assessing, prioritizing, remediating, and documenting vulnerabilities in a product over its lifecycle, including those in third‑party and open‑source components.
- Security update obligations
- CRA requirements that manufacturers provide free, timely security updates for at least the product’s expected lifetime or a CRA‑mandated minimum period, and clearly inform users about update mechanisms and support duration.
- Coordinated Vulnerability Disclosure (CVD)
- A process where security researchers and manufacturers work together on vulnerability reporting, fixing, and public disclosure, following agreed timelines and rules to minimize risk to users.
- Software Bill of Materials (SBOM)
- A detailed list of all software components (including open‑source libraries and third‑party code) used in a product, helping manufacturers identify which vulnerabilities affect their products.
12. Final Check: Applying CRA Principles
One last question to connect everything in this module.
Your product uses an open‑source library that has a newly disclosed critical vulnerability. According to CRA expectations, what is the most appropriate response?
- Wait for the open‑source project to fully fix it and do nothing until then, because it is not your code.
- Immediately remove the product from the market permanently, as CRA forbids any vulnerable components.
- Assess impact and exploitability, apply or backport upstream fixes, release a security update promptly, and communicate clearly with users.
Show Answer
Answer: C) Assess impact and exploitability, apply or backport upstream fixes, release a security update promptly, and communicate clearly with users.
The CRA holds manufacturers responsible for the whole product, including open‑source components. You must assess the vulnerability, implement or integrate a fix, release a timely security update, and inform users as needed. Simply waiting or abandoning the product is not aligned with CRA’s risk‑based, lifecycle‑oriented approach.
Key Terms
- Vulnerability
- A weakness in a system, software, or component that could be exploited to violate security policies such as confidentiality, integrity, or availability.
- Security update
- A software update specifically intended to fix vulnerabilities or improve security settings without adding major new features.
- Continuous monitoring
- A process of regularly and systematically checking for new vulnerabilities, threats, and security events that affect deployed products.
- Open‑source component
- Software whose source code is publicly available under an open‑source license and can be used, modified, and distributed under specified conditions.
- Third‑party component
- Any software or hardware element in a product that is developed by another organization, including proprietary libraries, SDKs, and cloud services.
- Expected product lifetime
- The time period during which the manufacturer reasonably expects the product to be used and, under the CRA, during which security support must generally be provided (or longer, if required).
- Cyber Resilience Act (CRA)
- An upcoming EU regulation establishing cybersecurity requirements for products with digital elements throughout their lifecycle, including design, development, production, and post‑market activities.
- Post‑market surveillance
- Ongoing monitoring and analysis of a product after it is placed on the market, including collecting information about vulnerabilities, incidents, and misuse.
- Software Bill of Materials (SBOM)
- A structured list of all components, libraries, and modules included in a software product, used to track which vulnerabilities may affect it.
- Coordinated Vulnerability Disclosure (CVD)
- A collaborative process between security researchers and manufacturers to handle vulnerability reporting, fixing, and disclosure in a way that reduces risk to users.