psf-rhsa(8)

Program: /opt/psf-security-patches/rhsa/rhsa.py. The advisories it finds are listed on the Red Hat advisories page. Source. With the package installed: man psf-rhsa.

usage: rhsa.py [-h] [--version]
               {find,verify,fetch,index,docs,audit,stats} ...

Find Red Hat security advisories, check installed packages against
them, and keep the READMEs up to date.

positional arguments:
  {find,verify,fetch,index,docs,audit,stats}
    find                advisories for CVEs
    verify              installed packages against the fixes
    fetch               download Red Hat's list (needs the network)
    index               build the index from Red Hat's list
    docs                write or check the README sections
    audit               check the repository against the index
    stats               what the index holds

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit

usage: rhsa.py find [-h] [--list LIST] [--live] [--url URL]
                    [--index INDEX] [--stream STREAM]
                    [--package PACKAGE] [--json] [--limit LIMIT]
                    cve [cve ...]

Which advisories name a CVE, for which stream, and which package
release fixes it. Exit 1 when nothing is found.

positional arguments:
  cve                CVE ids, for example CVE-2026-98432

options:
  -h, --help         show this help message and exit
  --list LIST        search Red Hat's full list (a CSV or JSON file)
                     instead of the index
  --live             ask Red Hat's Security Data API (needs the
                     network)
  --url URL          the Security Data API address (default: Red
                     Hat's)
  --index INDEX      the index file (default: data/rhsa-index.json
                     next to this script)
  --stream STREAM    one stream, for example 9.6 or 'RHEL 9.6'
  --package PACKAGE  a pattern for the package name
  --json             print the records as JSON
  --limit LIMIT      packages shown per advisory

usage: rhsa.py verify [-h] [--rpm [RPM ...]] [--cve CVE] [--all]
                      [--list LIST] [--max-packages MAX_PACKAGES]
                      [--index INDEX]
                      [nevra ...]

Is an installed package at or after Red Hat's fix? Exit 1 when one is
older.

positional arguments:
  nevra                 package names as name-[epoch:]version-
                        release[.arch], or - to read them from
                        standard input

options:
  -h, --help            show this help message and exit
  --rpm [RPM ...]       read the packages from rpm: the ones named, or
                        all when none is named
  --cve CVE             only this CVE (repeat it for more)
  --all                 also show packages no advisory names
  --list LIST           use Red Hat's list (a file from fetch) instead
                        of the index, for every CVE in it
  --max-packages MAX_PACKAGES
                        trust an advisory to pair a package with a fix
                        only when it lists this many source packages
                        or fewer (default 8)
  --index INDEX         the index file (default: data/rhsa-index.json
                        next to this script)

usage: rhsa.py fetch [-h] --after AFTER [--before BEFORE] --out OUT
                     [--merge MERGE] [--url URL] [--per-page PER_PAGE]

Download Red Hat's list of security advisories from its Security Data
API into a JSON file that index, find --list and verify --list can
read.

options:
  -h, --help           show this help message and exit
  --after AFTER        released on or after this date, YYYY-MM-DD
  --before BEFORE      released before this date, YYYY-MM-DD
  --out OUT            write the list to this file
  --merge MERGE        add the new advisories to this existing list
                       first
  --url URL            the Security Data API address (default: Red
                       Hat's)
  --per-page PER_PAGE  records asked for per request

usage: rhsa.py index [-h] [--repo REPO] [--cve CVE] [--all]
                     [--out OUT] [--placement PLACEMENT]
                     list [pairs]

Build the small index the other commands work from: the advisories for
the CVEs the READMEs name, or for every CVE with --all.

positional arguments:
  list                  Red Hat's list, a CSV or JSON file
  pairs                 Red Hat's list of advisory and CVE pairs;
                        optional, only compared with the list

options:
  -h, --help            show this help message and exit
  --repo REPO           the repository folder that holds the tool
                        READMEs (its CVEs are kept as well as those in
                        the placement table)
  --cve CVE             keep this CVE too (repeat it for more)
  --all                 keep every CVE in the list, not only those the
                        READMEs name
  --out OUT             write the index here (default: the index file)
  --placement PLACEMENT
                        the placement table (default: placement.json
                        next to this script)

usage: rhsa.py docs [-h] [--index INDEX] [--placement PLACEMENT]
                    --repo REPO (--write | --check)

Write the Red Hat advisories section of each README that the placement
table names, and REDHAT-ADVISORIES.md; or list what is out of date.

options:
  -h, --help            show this help message and exit
  --index INDEX         the index file (default: data/rhsa-index.json
                        next to this script)
  --placement PLACEMENT
                        the placement table (default: placement.json
                        next to this script)
  --repo REPO           the repository folder that holds the tool
                        READMEs
  --write               write the sections
  --check               list what is out of date; exit 1 if anything
                        is

usage: rhsa.py audit [-h] [--index INDEX] [--placement PLACEMENT]
                     --repo REPO

Check the repository against the index: sections up to date, every CVE
with an advisory placed or excluded on purpose, every advisory id
cited anywhere in the data. Exit 1 on a problem.

options:
  -h, --help            show this help message and exit
  --index INDEX         the index file (default: data/rhsa-index.json
                        next to this script)
  --placement PLACEMENT
                        the placement table (default: placement.json
                        next to this script)
  --repo REPO           the repository folder that holds the tool
                        READMEs

usage: rhsa.py stats [-h] [--index INDEX]

Print what the index holds: advisories, CVEs, severities and streams.

options:
  -h, --help     show this help message and exit
  --index INDEX  the index file (default: data/rhsa-index.json next to
                 this script)

The Security Patches software and this documentation are dedicated to the public domain under CC0 1.0 Universal. Other pages on privacysafe.app/docs are CC BY-SA 4.0 unless the page says otherwise.

The PrivacySafe Ecosystem

Shop at Ivy Cyber

Ivy Cyber offers PrivacySafe products and services in the USA and has partnerships with 3NSoft in Canada and Kuip Limited in the European Union. Enterprise services and consulting are available at ivycyber.com

PrivacySafe Foundation is a 501(c)(3) nonprofit public charity that supports the development of the PrivacySafe applications, along with the components they rely upon: 3NWeb protocols, filesystem, documentation, and reference implementations.

PrivacySafe Foundation

Donations to PrivacySafe Foundation support education, research, documentation, and public code. Purchases from Ivy Cyber support PrivacySafe products, services, hosting, and technical support. Together, we're building a better web.