Machine-Readable Security Data (Errata, OVAL, CSAF)
TuxCare provides machine-readable security data for Endless Lifecycle Support (ELS) for Runtimes in the following formats:
- Errata — qualified security and selected bug-fix errata advisories
- OVAL — Open Vulnerability and Assessment Language patch definitions for use with OpenSCAP and similar tools
- CSAF — Common Security Advisory Framework advisories in OASIS CSAF 2.0 format, covering both Vulnerability Exploitability eXchange (VEX) and Security Advisory profiles
- RSS — release feeds for tracking updates
Every package is also signed so you can verify its authenticity and integrity before installing — see Package Signature Verification (GPG).
Released fixes are also available via tuxcare.com/cve-tracker and security.tuxcare.com.
PHP
| OS | Errata | OVAL | CSAF | RSS |
|---|---|---|---|---|
| EL 7 | errata | oval.xml | csaf | rss |
| EL 8 | errata | oval.xml | csaf | rss |
| EL 9 | errata | oval.xml | csaf | rss |
| EL 10 | errata | oval.xml | csaf | rss |
| Ubuntu 16.04 | errata | oval.xml | csaf | rss |
| Ubuntu 18.04 | errata | oval.xml | csaf | rss |
| Ubuntu 20.04 | errata | oval.xml | csaf | rss |
| Ubuntu 22.04 | errata | oval.xml | csaf | rss |
| Ubuntu 24.04 | errata | oval.xml | csaf | rss |
| Debian 10 | errata | oval.xml | csaf | rss |
| Debian 11 | errata | oval.xml | csaf | rss |
| Debian 12 | errata | oval.xml | csaf | rss |
| Debian 13 | errata | oval.xml | csaf | rss |
| Alpine Linux 3.22 | — | — | csaf | rss |
Python
| OS | Errata | OVAL | CSAF | RSS |
|---|---|---|---|---|
| EL 7 | errata | oval.xml | csaf | rss |
| EL 8 | errata | oval.xml | csaf | rss |
| EL 9 | errata | oval.xml | csaf | rss |
| EL 10 | errata | oval.xml | csaf | rss |
| Ubuntu 16.04 | errata | oval.xml | csaf | rss |
| Ubuntu 18.04 | errata | oval.xml | csaf | rss |
| Ubuntu 20.04 | errata | oval.xml | csaf | rss |
| Ubuntu 22.04 | errata | oval.xml | csaf | rss |
| Ubuntu 24.04 | errata | oval.xml | csaf | rss |
| Debian 10 | errata | oval.xml | csaf | rss |
| Debian 11 | errata | oval.xml | csaf | rss |
| Debian 12 | errata | oval.xml | csaf | rss |
| Debian 13 | errata | oval.xml | csaf | rss |
| Alpine Linux 3.22 | — | — | csaf | rss |
Node.js
| OS | Errata | CSAF | RSS |
|---|---|---|---|
| EL 7 | errata | csaf | rss |
| EL 8 | errata | csaf | rss |
| EL 9 | errata | csaf | rss |
| EL 10 | errata | csaf | rss |
| Ubuntu 16.04 | errata | csaf | rss |
| Ubuntu 18.04 | errata | csaf | rss |
| Ubuntu 20.04 | errata | csaf | rss |
| Ubuntu 22.04 | errata | csaf | rss |
| Ubuntu 24.04 | errata | csaf | rss |
| Debian 10 | errata | csaf | rss |
| Debian 11 | errata | csaf | rss |
| Debian 12 | errata | csaf | rss |
| Debian 13 | errata | csaf | rss |
| Alpine Linux 3.22 | errata | csaf | rss |
Ruby
| OS | CSAF | RSS |
|---|---|---|
| EL 7 | csaf | rss |
| EL 8 | csaf | rss |
| EL 9 | csaf | rss |
| EL 10 | csaf | rss |
| Ubuntu 16.04 | csaf | rss |
| Ubuntu 18.04 | csaf | rss |
| Ubuntu 20.04 | csaf | rss |
| Ubuntu 22.04 | csaf | rss |
| Ubuntu 24.04 | csaf | rss |
| Debian 10 | csaf | rss |
| Debian 11 | csaf | rss |
| Debian 12 | csaf | rss |
| Debian 13 | csaf | rss |
| Alpine Linux 3.22 | csaf | rss |
How to use OVAL
OVAL can be used with the OpenSCAP tool.
Install OpenSCAP
yum install openscap openscap-utils scap-security-guide -yDownload an OVAL stream. For example, Python on EL 8:
wget https://security.tuxcare.com/oval/els_alt_python/el8/oval.xmlRun a scan:
oscap oval eval --results result.xml --report report.xml oval.xml
How to use CSAF
Common Security Advisory Framework (CSAF) is a machine-readable format, standardized by OASIS. TuxCare publishes CSAF VEX and Security Advisory files in CSAF 2.0 format at security.tuxcare.com.
provider-metadata.json is available at:
The CSAF files are published in JSON format — OASIS provides a list of reference tools that support CSAF.
Package Signature Verification (GPG)
ELS for Runtimes (PHP, Python, Node.js, Ruby, and other runtimes delivered as alt-* packages) is distributed as native RPM, DEB, and APK packages from TuxCare-managed repositories. Every package and the repository metadata that indexes it are signed with TuxCare's OpenPGP key, so that before anything is installed or updated you can confirm two things about each artifact:
- Authenticity — it was signed with TuxCare's private key.
- Integrity — its bytes match exactly what was signed; no tampering or corruption occurred in transit.
Unlike a manual, registry-based flow, verification here is built into the native package manager. The repository setup script you run during installation imports the TuxCare signing key and enables signature checking (gpgcheck=1 on RPM; signed InRelease/index on DEB and APK), so yum/dnf, apt, and apk verify each package automatically on every install and update. A verification that fails is an integrity violation: the package manager refuses to install the artifact. Do not work around a failed check by disabling verification or re-downloading over an insecure channel — investigate the source instead (see Integrity Violation Events).
Confirm the TuxCare Signing Key Is Installed
The repository setup script installs the key for you. To confirm it is present in the trust store your package manager uses:
rpm -qi $(rpm -qa 'gpg-pubkey*') | grep -i tuxcareIf the key is missing, re-run the repository setup script from the installation instructions rather than importing a key from an untrusted source.
Obtaining the key manually
The TuxCare public signing key is also published at repo.tuxcare.com/tuxcare/RPM-GPG-KEY-TuxCare and, on RPM systems, installed to /etc/pki/rpm-gpg/RPM-GPG-KEY-TuxCare. If you need the key for a different ecosystem or for an air-gapped mirror, contact sales@tuxcare.com.
Verify a Package
With signature checking enabled, verification happens automatically during install and update. You can also verify explicitly before installing:
- RPM — download the package without installing, then check its signature.
- DEB —
aptverifies the signedInReleaseindex on update, then checks every.debagainst the checksums in that signed index. - APK —
apkverifies the signed index and the package checksum automatically onapk add; useapk verifyto check a downloaded package.
yumdownloader alt-php74 # or: dnf download alt-php74
rpm --checksig alt-php74-*.rpmA successful RPM check reports digests signatures OK; apt-get update completes with no NO_PUBKEY, not signed, or Hash Sum mismatch warnings; and apk verify prints OK. Any other result is an integrity violation — stop and re-obtain the package over a trusted channel.
Repository metadata signing on RPM
On RPM-based systems, package signatures are enforced by default (gpgcheck=1), and TuxCare also signs the repository metadata (repomd.xml.asc is published). However, metadata-signature checking (repo_gpgcheck) is not always enabled by default, so tampering with the repository index itself is not caught out of the box. To have yum/dnf reject unsigned or altered metadata, enable it in the repository configuration (/etc/yum.repos.d/*.repo):
repo_gpgcheck=1
On DEB and APK, the signed repository index (InRelease/Release.gpg and the APK index signature) is verified by default, so this step is RPM-specific.
Windows runtimes
ELS runtimes delivered for Windows (for example .NET and PHP for Windows) are distributed as individually signed archives rather than through a Linux package manager. For signature-verification guidance on those artifacts, contact sales@tuxcare.com.
Integrity Violation Events
For compliance with regulations such as the EU Cyber Resilience Act (CRA), an administrator must be able to detect and retain evidence when an integrity check fails — not just have the installation blocked at the terminal. This section defines what counts as an integrity violation for ELS for Runtimes and shows how to capture these events in a dedicated log.
What Counts as an Integrity Violation
An integrity violation is any failure of the package manager to confirm that an artifact is authentic and unmodified. Four event types apply:
1. GPG signature failure — a package is signed with an unknown key, or its signature does not match its contents.
Package alt-php74-7.4.33-....rpm is not signed
# or:
The GPG keys listed for the '...' repository are already installed but they are not correct for this package.
# or:
GPG check FAILED2. Repository metadata signature mismatch — the signed repository index cannot be verified against the trusted key (index tampered with, unsigned, or signed by the wrong key).
# Only detected when repo_gpgcheck=1 (see note above)
repomd.xml signature could not be verified for ...
# or:
GPG verification is enabled, but GPG signature is not available.3. Checksum error — a package's bytes do not match the checksum recorded in the signed index (corruption or tampering after signing).
Package does not match intended download.
# or:
[Errno -1] Package ... checksum ... does not match4. HTTPS/TLS certificate error — the connection to the repository could not be authenticated, so the transport itself is untrusted.
Curl error (60): SSL peer certificate or SSH remote key was not OK
# or:
SSL certificate problem: unable to get local issuer certificateNever bypass one of these errors with flags such as --nogpgcheck, [trusted=yes], --allow-untrusted, or --no-check-certificate. Treat the artifact as compromised, log the event (below), and re-obtain the package and repository configuration from TuxCare over a trusted channel.
Retaining Integrity Violation Events in a Dedicated Log
By default an integrity violation is only printed to the terminal of whoever ran the command, so an unattended update (cron, automation, or a fetch triggered while nobody is watching) leaves no durable record. To satisfy the CRA requirement, route these events to a dedicated log the administrator can review, separate from standard package-manager output.
The approach is to run the update through a wrapper that scans the package manager's output for the violation signatures above and forwards any match to the system log via logger, tagged so it can be isolated:
#!/bin/sh
# /usr/local/sbin/tuxcare-secure-update
# Run the ELS update and record any integrity violation to syslog.
TAG=tuxcare-integrity
PATTERN='NO_PUBKEY|not signed|GPG check FAILED|is not signed|signature could not be verified|UNTRUSTED signature|BAD signature|BAD archive|Hash Sum mismatch|checksum .* does not match|does not match intended download|certificate verification failed|unable to get local issuer certificate|NOT trusted'
# Detect the package manager once and run only that one, so a genuine
# integrity failure is not masked by a fall-through to a missing tool
# (a missing manager would otherwise overwrite the exit code with 127).
if command -v yum >/dev/null 2>&1; then
out=$(yum -y update 'alt-*' 2>&1); status=$?
elif command -v dnf >/dev/null 2>&1; then
out=$(dnf -y update 'alt-*' 2>&1); status=$?
elif command -v apt-get >/dev/null 2>&1; then
out=$(apt-get -y upgrade 2>&1); status=$?
elif command -v apk >/dev/null 2>&1; then
out=$(apk upgrade 'alt-*' 2>&1); status=$?
else
echo "No supported package manager found" >&2
exit 1
fi
echo "$out"
echo "$out" | grep -Ei "$PATTERN" \
| while IFS= read -r line; do
logger -t "$TAG" -p auth.err "INTEGRITY VIOLATION: $line"
done
exit "$status"
Then route the tagged messages to a dedicated file. With rsyslog, add /etc/rsyslog.d/60-tuxcare-integrity.conf:
# Send everything tagged tuxcare-integrity to a dedicated log
:syslogtag, contains, "tuxcare-integrity" /var/log/tuxcare-integrity.log
& stop
Reload rsyslog and secure the log so it is append-only for auditing:
systemctl restart rsyslog
touch /var/log/tuxcare-integrity.log
chmod 0640 /var/log/tuxcare-integrity.log
chattr +a /var/log/tuxcare-integrity.log # append-only (optional)
On systems using journald, the logger tag is queryable without extra configuration:
journalctl -t tuxcare-integrity
Run the wrapper from your normal update mechanism (interactively, from cron, or from configuration management) instead of calling the package manager directly. Every blocked installation is then captured in /var/log/tuxcare-integrity.log (or the journal), regardless of when or how the update was triggered, giving administrators a durable, reviewable record of integrity violations.
