← Back to CVE Explorer

CVE-2026-42223

Full vulnerability record from the local CVENow database.

Description

Nginx UI is a web user interface for the Nginx web server. Prior to version 2.3.8, the GetSettings API handler (api/settings/settings.go:24-65) serializes all settings structs to JSON and returns them to authenticated users. Many sensitive fields are tagged with protected:"true" - however, this tag is only enforced during writes (via ProtectedFill in SaveSettings) and is completely ignored during reads. This exposes 40+ protected fields including JwtSecret (enabling auth token forgery), NodeSecret (enabling cluster node impersonation), OIDC ClientSecret (enabling OAuth account takeover), and the IP whitelist configuration. This issue has been patched in version 2.3.8.

Severity
MEDIUM
CVSS score
6.5 (v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-05-04 21:16:32.320000
Last modified
2026-10-26 19:10:00.163000
View original CVE JSON
{
  "id": "CVE-2026-42223",
  "sourceIdentifier": "[email protected]",
  "published": "2026-05-04T21:16:32.320",
  "lastModified": "2026-10-26T19:10:00.163",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "Nginx UI is a web user interface for the Nginx web server. Prior to version 2.3.8, the GetSettings API handler (api/settings/settings.go:24-65) serializes all settings structs to JSON and returns them to authenticated users. Many sensitive fields are tagged with protected:\"true\" - however, this tag is only enforced during writes (via ProtectedFill in SaveSettings) and is completely ignored during reads. This exposes 40+ protected fields including JwtSecret (enabling auth token forgery), NodeSecret (enabling cluster node impersonation), OIDC ClientSecret (enabling OAuth account takeover), and the IP whitelist configuration. This issue has been patched in version 2.3.8."
    },
    {
      "lang": "es",
      "value": "Nginx UI es una interfaz de usuario web para el servidor web Nginx. Antes de la versión 2.3.8, el gestor de la API GetSettings (api/settings/settings.go:24-65) serializa todas las estructuras de configuración a JSON y las devuelve a usuarios autenticados. Muchos campos sensibles están etiquetados con protected:’true’ - sin embargo, esta etiqueta solo se aplica durante las escrituras (mediante ProtectedFill en SaveSettings) y se ignora completamente durante las lecturas. Esto expone más de 40 campos protegidos, incluyendo JwtSecret (lo que permite la falsificación de tokens de autenticación), NodeSecret (lo que permite la suplantación de nodos de clúster), OIDC ClientSecret (lo que permite la toma de control de cuentas OAuth) y la configuración de la lista blanca de IP. Este problema ha sido parcheado en la versión 2.3.8."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "0xJacky",
          "product": "nginx-ui",
          "versions": [
            {
              "version": "< 2.3.8",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
          "baseScore": 6.5,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "NONE",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 2.8,
        "impactScore": 3.6
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-05-05T14:08:30.625361Z",
          "id": "CVE-2026-42223",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-200"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:nginxui:nginx_ui:*:*:*:*:*:*:*:*",
              "versionEndExcluding": "2.3.8",
              "matchCriteriaId": "FB1A4031-FD2F-49D7-8021-128BA057C4FA"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/0xJacky/nginx-ui/releases/tag/v2.3.8",
      "source": "[email protected]",
      "tags": [
        "Release Notes"
      ]
    },
    {
      "url": "https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-q4w7-56hr-83rm",
      "source": "[email protected]",
      "tags": [
        "Exploit",
        "Vendor Advisory"
      ]
    },
    {
      "url": "https://github.com/0xJacky/nginx-ui/security/advisories/GHSA-q4w7-56hr-83rm",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
      "tags": [
        "Exploit",
        "Vendor Advisory"
      ]
    }
  ]
}