CVE-2025-13877
nocobase JWT Service jwt-service.ts hard-coded key
A vulnerability was detected in nocobase up to 1.9.4/2.0.0-alpha.37. The affected element is an unknown function of the file nocobase\packages\core\auth\src\base\jwt-service.ts of the component JWT Service. The manipulation of the argument API_KEY results in use of hard-coded cryptographic key . The attack can be launched remotely. A high complexity level is associated with this attack. The exploitability is described as difficult. The exploit is now public and may be used. The vendor was contacted early about this disclosure but did not respond in any way.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
6.3
nocobase JWT Service jwt-service.ts hard-coded key
A vulnerability was detected in nocobase up to 1.9.4/2.0.0-alpha.37. The affected element is an unknown function of the file nocobase\packages\core\auth\src\base\jwt-service.ts of the component JWT Service. The manipulation of the argument API_KEY results in use of hard-coded cryptographic key . The attack can be launched remotely. A high complexity level is associated with this attack. The exploitability is described as difficult. The exploit is now public and may be used. The vendor was contacted early about this disclosure but did not respond in any way.
- Record
CVE-2025-13877- CVSS 4.0
- 6.3 Medium
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P - CVSS 3.1
- 5.6 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P/RL:X/RC:R - CVSS 3.0
- 5.6 Medium
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L/E:P/RL:X/RC:R - CVSS 2.0
- 5.1
AV:N/AC:H/Au:N/C:P/I:P/A:P/E:POC/RL:ND/RC:UR - Weakness
- CWE-321, CWE-320
- Updated
- 2026-11-02
EUVDEUVD-2025-200266
6.3
A vulnerability was detected in nocobase up to 1.9.4/2.0.0-alpha.37. The affected element is an unknown function of the file nocobase\packages\core\auth\src\base\jwt-service.ts of the component JWT Service. The manipulation of the argument API_KEY results in use of hard-coded cryptographic key . The attack can be launched remotely. A high complexity level is associated with this attack. The exploitability is described as difficult. The exploit is now public and may be used. The vendor was contacted early about this disclosure but did not respond in any way.
- Record
EUVD-2025-200266- CVSS 4.0
- 6.3 Medium
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-644f-hrff-mf96
2.9
Duplicate Advisory: Authentication Bypass via Default JWT Secret in NocoBase docker-compose Deployments
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-mv7p-34fv-4874. This link is maintained to preserve external references.
Original Description
A vulnerability was detected in nocobase up to 1.9.4/2.0.0-alpha.37. The affected element is an unknown function of the file nocobase\packages\core\auth\src\base\jwt-service.ts of the component JWT Service. The manipulation of the argument API_KEY results in use of hard-coded cryptographic key . The attack can be launched remotely. A high complexity level is associated with this attack. The exploitability is described as difficult. The exploit is now public and may be used. The vendor was contacted early about this disclosure but did not respond in any way.
- Record
GHSA-644f-hrff-mf96- CVSS 4.0
- 2.9 Low
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.6 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-mv7p-34fv-4874
6.3
Authentication Bypass via Default JWT Secret in NocoBase docker-compose Deployments
Impact
CVE-2025-13877 is an authentication bypass vulnerability caused by insecure default JWT key usage in NocoBase Docker deployments.
Because the official one-click Docker deployment configuration historically provided a public default JWT key, attackers can forge valid JWT tokens without possessing any legitimate credentials. By constructing a token with a known userId (commonly the administrator account), an attacker can directly bypass authentication and authorization checks.
Successful exploitation allows an attacker to:
- Bypass authentication entirely
- Impersonate arbitrary users
- Gain full administrator privileges
- Access sensitive business data
- Create, modify, or delete users
- Access cloud storage credentials and other protected secrets
The vulnerability is remotely exploitable, requires no authentication, and public proof-of-concept exploits are available.
This issue is functionally equivalent in impact to other JWT secret exposure vulnerabilities such as CVE-2024-43441 and CVE-2025-30206.
Deployments that used the default Docker configuration without explicitly overriding the JWT secret are affected.
Patches
✅ The vulnerability has been fully patched through a secure JWT key management redesign.
The remediation enforces the following security guarantees:
- JWT secrets are no longer allowed to fall back to public default values.
- Secrets must either:
- Be explicitly provided by the user, or
- Be securely generated using cryptographically strong randomness at first startup.
- Generated secrets are persisted securely with restricted filesystem permissions.
- Invalid or weak secret values immediately trigger a startup failure.
✅ Fixed Versions:
- NocoBase ≥ 1.9.23
- NocoBase ≥ 1.9.0-beta.18
- NocoBase ≥ 2.0.0-alpha.52
Workarounds
If upgrading is not immediately possible, the following temporary mitigations must be performed to reduce risk:
- Explicitly set a strong, randomly generated JWT secret via environment variables
APP_KEY. - Restart all running NocoBase instances so the new secret takes effect.
- Invalidate all existing JWT sessions, forcing complete user re-authentication.
- Verify that no default secret values are present in:
docker-compose.yml.envfiles- Kubernetes Secrets
References
-
CVE Record: CVE-2025-13877
-
VulDB Entry: https://vuldb.com/?id.334033
-
Public Exploit Proof:
https://gist.github.com/H2u8s/f3ede60d7ecfe598ae452aa5a8fbb90d -
Affected Default Docker Configurations:
- https://github.com/nocobase/nocobase/blob/main/docker/app-mysql/docker-compose.yml#L13
- https://github.com/nocobase/nocobase/blob/main/docker/app-mariadb/docker-compose.yml#L13
- https://github.com/nocobase/nocobase/blob/main/docker/app-postgres/docker-compose.yml#L11
- https://github.com/nocobase/nocobase/blob/main/docker/app-sqlite/docker-compose.yml#L11
-
Official Deployment Documentation:
- Record
GHSA-mv7p-34fv-4874- CVSS 4.0
- 6.3 Medium
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Weakness
- CWE-321, CWE-1320
- Updated
- 2026-11-02
NVD
2.9
A vulnerability was detected in nocobase up to 1.9.4/2.0.0-alpha.37. The affected element is an unknown function of the file nocobase\packages\core\auth\src\base\jwt-service.ts of the component JWT Service. The manipulation of the argument API_KEY results in use of hard-coded cryptographic key . The attack can be launched remotely. A high complexity level is associated with this attack. The exploitability is described as difficult. The exploit is now public and may be used. The vendor was contacted early about this disclosure but did not respond in any way.
- Record
CVE-2025-13877- CVSS 4.0
- 2.9 Low
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.6 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L - CVSS 2.0
- 5.1 Medium
AV:N/AC:H/Au:N/C:P/I:P/A:P - Weakness
- CWE-320, CWE-321
- Updated
- 2026-11-02
OSVGHSA-644f-hrff-mf96
2.9
Duplicate Advisory: Authentication Bypass via Default JWT Secret in NocoBase docker-compose Deployments
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-mv7p-34fv-4874. This link is maintained to preserve external references.
Original Description
A vulnerability was detected in nocobase up to 1.9.4/2.0.0-alpha.37. The affected element is an unknown function of the file nocobase\packages\core\auth\src\base\jwt-service.ts of the component JWT Service. The manipulation of the argument API_KEY results in use of hard-coded cryptographic key . The attack can be launched remotely. A high complexity level is associated with this attack. The exploitability is described as difficult. The exploit is now public and may be used. The vendor was contacted early about this disclosure but did not respond in any way.
- Record
GHSA-644f-hrff-mf96- CVSS 4.0
- 2.9 Low
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.6 Medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L - Updated
- 2026-11-02
OSVGHSA-mv7p-34fv-4874
6.3
Authentication Bypass via Default JWT Secret in NocoBase docker-compose Deployments
Impact
CVE-2025-13877 is an authentication bypass vulnerability caused by insecure default JWT key usage in NocoBase Docker deployments.
Because the official one-click Docker deployment configuration historically provided a public default JWT key, attackers can forge valid JWT tokens without possessing any legitimate credentials. By constructing a token with a known userId (commonly the administrator account), an attacker can directly bypass authentication and authorization checks.
Successful exploitation allows an attacker to:
- Bypass authentication entirely
- Impersonate arbitrary users
- Gain full administrator privileges
- Access sensitive business data
- Create, modify, or delete users
- Access cloud storage credentials and other protected secrets
The vulnerability is remotely exploitable, requires no authentication, and public proof-of-concept exploits are available.
This issue is functionally equivalent in impact to other JWT secret exposure vulnerabilities such as CVE-2024-43441 and CVE-2025-30206.
Deployments that used the default Docker configuration without explicitly overriding the JWT secret are affected.
Patches
✅ The vulnerability has been fully patched through a secure JWT key management redesign.
The remediation enforces the following security guarantees:
- JWT secrets are no longer allowed to fall back to public default values.
- Secrets must either:
- Be explicitly provided by the user, or
- Be securely generated using cryptographically strong randomness at first startup.
- Generated secrets are persisted securely with restricted filesystem permissions.
- Invalid or weak secret values immediately trigger a startup failure.
✅ Fixed Versions:
- NocoBase ≥ 1.9.23
- NocoBase ≥ 1.9.0-beta.18
- NocoBase ≥ 2.0.0-alpha.52
Workarounds
If upgrading is not immediately possible, the following temporary mitigations must be performed to reduce risk:
- Explicitly set a strong, randomly generated JWT secret via environment variables
APP_KEY. - Restart all running NocoBase instances so the new secret takes effect.
- Invalidate all existing JWT sessions, forcing complete user re-authentication.
- Verify that no default secret values are present in:
docker-compose.yml.envfiles- Kubernetes Secrets
References
-
CVE Record: CVE-2025-13877
-
VulDB Entry: https://vuldb.com/?id.334033
-
Public Exploit Proof:
https://gist.github.com/H2u8s/f3ede60d7ecfe598ae452aa5a8fbb90d -
Affected Default Docker Configurations:
- https://github.com/nocobase/nocobase/blob/main/docker/app-mysql/docker-compose.yml#L13
- https://github.com/nocobase/nocobase/blob/main/docker/app-mariadb/docker-compose.yml#L13
- https://github.com/nocobase/nocobase/blob/main/docker/app-postgres/docker-compose.yml#L11
- https://github.com/nocobase/nocobase/blob/main/docker/app-sqlite/docker-compose.yml#L11
-
Official Deployment Documentation:
- Record
GHSA-mv7p-34fv-4874- CVSS 4.0
- 6.3 Medium
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Weakness
- CWE-1320, CWE-321
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
@nocobase/authnpm |
1.9.0 to 1.9.21 | 1.9.23 |
@nocobase/authnpm |
through 1.9.0-beta.17 | 1.9.0-beta.18 |
@nocobase/authnpm |
2.0.0-alpha.1 to 2.0.0-alpha.51 | 2.0.0-alpha.52 |
@nocobase/authnpm |
1.9.0 up to 1.9.23 | 1.9.23 |
@nocobase/authnpm |
before 1.9.0-beta.18 | 1.9.0-beta.18 |
@nocobase/authnpm |
2.0.0-alpha.1 up to 2.0.0-alpha.52 | 2.0.0-alpha.52 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-13877 is a medium vulnerability (CVSS 6.3) in Nocobase, published December 2, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.33%, the 26th percentile. Fixed in @nocobase/auth 1.9.23.
References
vuldb.com?id.334033
vuldb.com?ctiid.334033
vuldb.com?submit.692205
gist.github.com/H2u8s/f3ede60d7ecfe598ae452aa5a8fbb90d
nvd.nist.gov/vuln/detail/CVE-2025-13877
github.com/advisories/GHSA-644f-hrff-mf96
Show 10 moreShow less
github.com/nocobase/nocobase/security/advisories/GHSA-mv7p-34fv-4874
github.com/nocobase/nocobase/commit/de4292ea7847dd26c6306445091769f8b9ee96d5
docs.nocobase.com/welcome/getting-started/installation/docker-compose
github.com/nocobase/nocobase/blob/main/docker/app-mariadb/docker-compose.yml
github.com/nocobase/nocobase/blob/main/docker/app-mysql/docker-compose.yml
github.com/nocobase/nocobase/blob/main/docker/app-postgres/docker-compose.yml
github.com/nocobase/nocobase/blob/main/docker/app-sqlite/docker-compose.yml
v2.docs.nocobase.com/get-started/installation/docker
github.com/advisories/GHSA-mv7p-34fv-4874
github.com/nocobase/nocobase