Security Advisories
How Zoi handles security vulnerabilities and how to report them.
Zoi includes a decentralized security advisory system designed to keep your systems safe. Vulnerability information is stored directly within the package registries, ensuring that security data is always synchronized with the software definitions.
How it Works
Security advisories are defined in .sec.yaml files co-located with the .pkg.lua files in a registry.
- Offline Support: Since advisories are part of the registry, they are available even in air-gapped environments after a
zoi sync. - Proactive Protection: Zoi automatically checks for known vulnerabilities during
zoi installandzoi update. - Manual Audits: Use the
zoi auditcommand to scan your installed packages.
Auditing Your System
To check all installed packages for known vulnerabilities, run:
zoi auditIf any vulnerable packages are found, Zoi will display a report including the severity, a summary of the issue, and the version that contains a fix.
Advanced Auditing
You can also list all advisories in the database, even for packages you haven't installed:
# List all advisories
zoi audit --all
# List advisories for a specific repository
zoi audit --repo communitySecurity Warnings During Installation
When you attempt to install or upgrade a package to a version known to be vulnerable, Zoi will pause and display a warning:
SECURITY WARNING
Package nodejs v20.5.0 is known to be vulnerable: [ZSA-2026-0042] Heap buffer overflow in HTTP/2 parser (Severity: CRITICAL)
Fixed in version: 20.11.1
Do you want to continue anyway? [y/N]
You must explicitly confirm with y to proceed with the installation of a vulnerable package.
Reporting a Vulnerability
We encourage researchers and users to report security issues in Zoi packages.
For Official Registry (Zoidberg)
- Prepare the Advisory: Create a new
.sec.yamlfile in the package's directory. UseZSA-YYYY-TEMP.sec.yamlas a temporary filename. - Submit a Merge Request: Open a Merge Request to the Zoidberg repository on GitLab.
- Automated ID Assignment: Upon submission, our CI system will automatically assign a unique Zoi Security Advisory (ZSA) ID and rename your file (e.g.
ZSA-2026-D0043.sec.yaml).
Advisory Schema
id: ZSA-2026-D0042
package: nodejs
# Optional: Target a specific sub-package (e.g. docs, devel)
# If omitted, the advisory applies to the base package.
sub_package: devel
summary: "Short description of the issue"
severity: critical # low, medium, high, critical
affected_range: ">=20.0.0, <20.11.1"
fixed_in: "20.11.1"
description: |
A detailed description of the vulnerability...
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-1234Severity Levels & ID Format
ZSA IDs follow the format [PREFIX]-YYYY-[SeverityChar][Number]. The severity character is mandatory and indicates the impact:
- A (Low): Minor issues with low impact (e.g.
ZSA-2026-A0042). - B (Medium): Moderate impact, often requiring specific configurations to exploit.
- C (High): Significant impact, potentially leading to data loss or unauthorized access.
- D (Critical): Severe vulnerabilities, such as remote code execution.
Note: The unique number in the ZSA ID is shared across all severity levels for a given year to prevent collisions.
2026 © All Rights Reserved.
- All the content is available under CC BY-SA 4.0, expect where otherwise stated.
- Source code is available on GitLab, licensed under Apache 2.0.
Last updated on
