CVE-2026-97055 Details
Description
SigNoz from v0.8.0 before v0.143.0 defaults the JWT tokenizer signing secret (tokenizer::jwt::secret, set via SIGNOZ_TOKENIZER_JWT_SECRET or the deprecated SIGNOZ_JWT_SECRET) to an empty string, and Config.Validate() does not reject the empty value, so a deployment that does not configure a secret starts up and both signs and verifies session tokens with an empty HMAC key. Because the JWT tokenizer was the default provider, any such deployment is affected. An unauthenticated attacker who knows the ID of an existing user can forge a valid session token for that user — including an administrator — by signing the id, orgId and email claims with an empty key; the organization ID (and whether an email is registered) can be obtained without authentication from /api/v2/sessions/context. A forged refresh token can be exchanged at /api/v2/sessions/rotate for a new token pair and cannot be revoked, so it remains usable for its full lifetime (30 days by default). Fixed in v0.143.0, which requires a JWT secret when the jwt provider is selected and changes the default provider to opaque.
A vulnerability in SigNoz versions 0.8.0 prior to 0.143.0 allows for session token forgery due to the JWT tokenizer signing secret defaulting to an empty string. The configuration validation does not reject this empty value, enabling deployments without a properly set secret to sign and verify session tokens with an empty HMAC key. This issue affects all deployments that use the JWT tokenizer, which was the default provider until version 0.143.0. An unauthenticated attacker can exploit this by knowing the ID of an existing user, including administrators, and forging a valid session token for that user. The organization ID and email registration status can be obtained without authentication from the sessions context API. Additionally, a forged refresh token can be exchanged for a new token pair, remaining valid for its full lifetime of 30 days by default.
Upgrade to SigNoz version 0.143.0 or later, which requires a JWT secret when the JWT provider is selected and changes the default provider to opaque.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
Volerion
Assessed Sep 24, 2026CISA-ADP
Assessed Sep 24, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/SigNoz/signoz/security/advisories/GHSA-c26w-g4j8-39m2 | CISA-ADP | AdvisoryExploitRemedyVendor |
| https://github.com/SigNoz/signoz/commit/67895d366d | [email protected] | Source CodeVendor |
| https://github.com/SigNoz/signoz/commit/b02aae2db3 | [email protected] | Source CodeVendor |
| https://github.com/SigNoz/signoz/security/advisories/GHSA-c26w-g4j8-39m2 | [email protected] | AdvisoryExploitRemedyVendor |
| https://www.vulncheck.com/advisories/signoz-before-0.143.0-authentication-bypass-via-empty-jwt-secret | [email protected] | AdvisoryRemedy |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-1188 | Initialization of a Resource with an Insecure Default | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| SigNoz | >= 0.8.0, < 0.143.0 (semver) |
CPE
Remediation
| |
Change History
2 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Sep 24, 2026 | CVE Modified | CISA-ADP |
| Sep 24, 2026 | New CVE Received | [email protected] |
Volerion