Module 0: CVEs, SBOMs, and the Patch Workflow — Foundations

Duration: 5 minutes

Before diving into Lightwell's automation, this module establishes the foundational concepts that make the rest of the lab meaningful: what CVEs are and how severity is scored, what SBOMs are and why they matter, and why traditional patch workflows take weeks.

There is nothing to run here. Read it through, then start Module 1.

What is Red Hat Lightwell?

Lightwell is a joint initiative between Red Hat and IBM focused on securing the open source software supply chain. It extends Red Hat’s proven model of enterprise open source maintenance by providing access to security remediations and mitigations far beyond our traditional product footprint.

In practice, that means remediated rebuilds of open source components. When a CVE lands against a widely used library, Red Hat rebuilds the affected version with the fix applied, signs it, and publishes it together with machine-readable metadata describing which CVEs that rebuild resolves. The rebuild keeps the upstream version number and the original API, with an .rhlw suffix marking it as remediated — so adopting it is a version bump rather than an upgrade.

Lightwell product icon: a translucent red cube assembled from smaller blocks, resting on concentric tracks dotted with small spheres

That matters because the slow part of patching is rarely the patch. It is finding a fixed version you trust, or backporting one yourself, and then proving to everyone downstream that it is safe to take. Lightwell removes that step. This lab exists to show what you can build once it is gone: if a trustworthy fixed artifact simply arrives, remediation becomes plumbing — notice the new build, work out which applications use the component, raise the change, ship it. The rest of this lab automates that plumbing two different ways.

How Lightwell Delivers Remediations

Lightwell publishes remediated artifacts through Red Hat secured repositories that you pull into your build alongside the public repositories you already use. When an eligible open source vulnerability is addressed, the signed rebuild lands in those repositories automatically — no manual download, no backporting on your end.

Module 1 introduces Lightwell as a simulated repository inside your own artifact manager. From there on, every remediation you see begins as an artifact landing in it.

What is a CVE?

A CVE (Common Vulnerabilities and Exposures) is a public identifier for one specific flaw in one specific piece of software — for example CVE-2023-24998, a denial-of-service in Apache Commons FileUpload. The identifier is just a label; the useful part is the metadata attached to it.

Severity is scored with CVSS (Common Vulnerability Scoring System), which produces a number from 0.0 to 10.0 and a band:

Band CVSS Typical expectation

Critical

9.0–10.0

Patch immediately, out of cycle

High

7.0–8.9

Patch in days

Medium

4.0–6.9

Patch in the next scheduled release

Low

0.1–3.9

Patch opportunistically

The crucial thing to understand is that CVSS scores a flaw, not your risk. The score is computed once, globally, by someone who has never seen your environment. A critical CVE in a library you ship but never call is not a critical risk to you. A medium CVE in your internet-facing payment path may well be. Everything in this lab exists to close that gap — to move from "a CVE exists somewhere in our estate" to "this CVE affects these three applications, and here is the patch".

What is an SBOM and Why Does it Matter?

A Software Bill of Materials is a machine-readable inventory of everything inside a build: every direct dependency, every transitive dependency, their versions, and their licences. Think of it as the ingredients list for a container image. The two common formats are CycloneDX and SPDX; this lab uses CycloneDX.

SBOMs matter because modern applications are mostly other people’s code. A Java service with twenty declared dependencies routinely resolves to several hundred actual artifacts. When a CVE lands against one of those transitive dependencies, the question "are we affected?" is genuinely hard to answer without an inventory.

Without SBOMs, answering it means grepping build files across every repository, and you will miss things — transitive dependencies do not appear in your pom.xml. With SBOMs, it is a database query: which SBOMs contain commons-fileupload at a version below 1.5?

flowchart TD App["payments-api"] D1["spring-boot-starter-web
declared"] D2["internal-doc-lib
declared"] T1["spring-web
transitive"] T2["commons-fileupload 1.4.0
transitive — CVE-2023-24998"] App --> D1 App --> D2 D1 --> T1 D2 --> T2 style T2 fill:#f8d7da,stroke:#b02a37,stroke-width:2px style App fill:#cfe2ff,stroke:#0d6efd
Figure 1. Only the top row is visible in your build file. The CVE is two levels down.

In this lab, SBOMs are stored and queried in Red Hat Trusted Profile Analyzer (RHTPA). In the quick win path you will generate SBOMs as part of the build; in the full automation path, RHTPA actively identifies which of your applications are affected by a given CVE.

A Note on VEX

An SBOM tells you a component is present. It does not tell you whether the vulnerable code is actually reachable. That is the role of VEX (Vulnerability Exploitability eXchange) — a supplier’s statement about whether a specific CVE genuinely affects a specific product.

Red Hat and other vendors publish VEX documents for their products. Customers can also generate VEX for their own applications and feed it into their scanners, so that known-safe components are not continuously flagged as vulnerable.

VEX is not directly demonstrated in this lab, but it is an important part of the broader supply chain story — it prevents SBOM data from drowning you in false positives.

The Traditional Patch Workflow — Why it Takes Weeks

A CVE is published. Here is what usually happens next:

  1. Discovery — a scanner flags it, or someone reads a mailing list. Days can pass.

  2. Triage — an engineer manually works out which applications pull the component in, often by searching repositories by hand. Transitive dependencies get missed.

  3. Sourcing — someone finds a fixed upstream version, then checks whether it is compatible, whether the licence changed, and whether it is itself trustworthy.

  4. Change request — a ticket is raised, assigned, queued behind other work, and waits for a change window.

  5. Patch and build — a developer bumps the version, fixes whatever broke, and pushes. CI builds and signs.

  6. Deploy — the change rolls through environments, each with its own approval gate.

  7. Close — someone remembers to update the ticket and evidence the fix for audit.

Each step is individually reasonable. Together they routinely take weeks — and most of that time is not technical work, it is waiting, searching, and re-establishing context. Meanwhile the vulnerability is live in production.

Three things make it slow, and Lightwell attacks all three:

  • Finding what is affected is manual. Solved by SBOM data in RHTPA — a query, not an investigation.

  • Sourcing a trustworthy fix is manual. Solved by Lightwell, which publishes remediated, signed builds of open source components. You will see these as versions carrying an .rhlw-NNNNN suffix, for example 1.4.0.rhlw-00001 — a remediated build of 1.4.0 that keeps the original API.

  • Producing and shipping the change is manual. Solved by the automation you are about to use — from event-driven triggers through merge requests to signed builds and automatic deployment.

Two Paths Through This Lab

This lab demonstrates two approaches to automating CVE remediation with Lightwell. Both use the same underlying infrastructure — they differ in how much automation and intelligence is applied.

Quick Win — Automated Dependency Updates

The simplest path. No AI, no orchestration. Renovate (an open source dependency update tool) watches your Lightwell mirror for new remediated versions and mechanically creates merge requests to bump your dependencies. Standard CI/CD handles the rest.

flowchart TB LW["Lightwell
Repository"] NX["Nexus
mirror"] RN["Renovate"] MR["GitLab
merge request"] TK["Tekton
build + sign"] AC["ArgoCD
deploy"] OS["OpenShift
production"] LW --> NX --> RN --> MR --> TK --> AC --> OS style MR fill:#cfe2ff,stroke:#0d6efd,stroke-width:2px
Figure 2. Quick Win: Lightwell + Renovate + CI/CD (click to enlarge)

You will use this path to remediate the report-generator-app — a low-risk internal reporting service.

Full Automation — AI-Assisted Remediation

The enterprise path. An event-driven workflow queries RHTPA to find affected applications, dispatches AI coding agents running on OpenCode to write the change, and maintains a Snow ITSM ticket throughout. Whether a human signs off is decided by each application’s own policy file, not by the agent: low-risk applications merge automatically, high-risk ones wait for a reviewer.

flowchart TB LW["Lightwell
Repository"] NX["Nexus
mirror"] AO["Ansible
Orchestrator"] TPA["RHTPA
SBOM analysis"] AI["AI Agents
risk + MRs"] MR["GitLab MRs
auto + manual"] TK["Tekton
build + sign"] AC["ArgoCD
deploy"] OS["OpenShift
production"] SN["Snow
updated throughout"] LW --> NX --> AO --> TPA --> AI --> MR --> TK --> AC --> OS AO -.-> SN TPA -.-> SN AI -.-> SN MR -.-> SN OS -.-> SN style MR fill:#cfe2ff,stroke:#0d6efd,stroke-width:2px style SN fill:#fff3cd,stroke:#997404
Figure 3. Full Automation: Lightwell + Ansible Orchestrator + AI + Snow (click to enlarge)

You will use this path to remediate the wire-transfer-svc (high risk, needs your approval) and the benefits-mgmt-app (low risk, auto-approved by the AI).

What They Share

Both paths start with the same event (a remediated artifact arriving from Lightwell) and end the same way (a signed container deployed to production with an updated SBOM). Full automation adds orchestration, AI-powered risk assessment, and ITSM tracking on top of what the quick win path already provides.

In this lab, deployment goes straight to production. Real-world customers typically add stages (test, staging, production), each with its own approval gate.