Your nginx version has a published CVE

Gixy reads configuration, not binaries. Tell it which nginx you are actually running and it will tell you which published CVEs apply to you.

HIGH nginx_cves 5 min read Updated: August 2026

Enabling the check

This check is silent by default, and deliberately so. Gixy is a static analyzer: it parses your configuration and has no view of the binary serving it. Guessing a version from the config would produce confident nonsense. So you supply it:

gixy --nginx-version=1.29.8 /etc/nginx/nginx.conf

Get the real number from the binary you are actually running:

nginx -v
# nginx version: nginx/1.29.8
Scripted: gixy --nginx-version=$(nginx -v 2>&1 | grep -oP '\d+\.\d+\.\d+') /etc/nginx/nginx.conf -- handy in CI where the nginx image tag and the config are versioned together.

What Gixy reports

[nginx_cves] Known nginx CVE affects your installed version.
  Severity: HIGH
  Reason: CVE-2025-53859 affects nginx 1.29.0 and is fixed in 1.29.1.

Two kinds of finding

The check distinguishes between them, which matters for how urgently you act:

  • Version-range CVEs. The flaw is in the binary. If your version falls in the affected range it applies to you, whatever your configuration says. Reported on the version alone.
  • Config-triggered CVEs. The vulnerable code path only runs when specific directives are present -- the mp4 module, resolver, HTTP/2 and HTTP/3 handling. These are reported only when Gixy finds the trigger in your config, and the finding attaches to the offending directives so you can see why.

That second category is the reason to run this against your config rather than against a version-number spreadsheet. A CVE in the mp4 module is not your problem if you never compiled it in.

The fix

Upgrade to the fixed release named in the finding. There is no configuration workaround for a binary flaw.

# RHEL / Rocky / AlmaLinux
dnf upgrade nginx

# Debian / Ubuntu
apt update && apt install --only-upgrade nginx

# Confirm, then reload
nginx -v
nginx -t && nginx -s reload

For a config-triggered CVE you cannot patch immediately, removing the trigger is a real mitigation -- disable the mp4 module, or drop the directive the finding points at -- but treat it as a stopgap until the upgrade lands.

Distribution versions lie about their numbers

Long-term-support distributions backport security fixes without bumping the upstream version. A RHEL nginx-1.20.1 may well carry patches for CVEs that Gixy will report against 1.20.1, because upstream fixed them in a later release. Check your vendor's advisory before treating such a finding as live. Vendor-neutral builds that track upstream -- and the GetPageSpeed repository is one -- do not have this ambiguity.

Verify the fix

# Re-run with the new version number
gixy --nginx-version=$(nginx -v 2>&1 | grep -oP '\d+\.\d+\.\d+') /etc/nginx/nginx.conf

When this is a false positive

Backported distribution packages, as above -- the single most common reason for a finding you can safely close. Beyond that, a config-triggered CVE reported against a module you have compiled out is worth a moment's checking with nginx -V: Gixy sees the directive in your config, not whether the module handling it was built in.

Reference