CVE-2025-13877: nocobase JWT Service jwt-service.ts hard-coded key

Published Dec 2, 2025
·
Updated

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:

1. Explicitly set a strong, randomly generated JWT secret via environment variables APPKEY. 2. Restart all running NocoBase instances so the new secret takes effect. 3. Invalidate all existing JWT sessions, forcing complete user re-authentication. 4. Verify that no default secret values are present in: - docker-compose.yml - .env files - 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: - https://docs.nocobase.com/welcome/getting-started/installation/docker-compose - https://v2.docs.nocobase.com/get-started/installation/docker

Other sources

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 APIKEY 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.

NVD

Affected Software

4 affected componentsFixes available
NocoBase NocoBase<=1.9.4, <=2.0.0-alpha.37
npm/@nocobase/auth>=2.0.0-alpha.1<=2.0.0-alpha.51
2.0.0-alpha.52
npm/@nocobase/auth<=1.9.0-beta.17
1.9.0-beta.18
npm/@nocobase/auth>=1.9.0<=1.9.21
1.9.23

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade npm/@nocobase/auth to a version that resolves this vulnerability.

    Fixed in 2.0.0-alpha.52
  2. Upgrade

    Upgrade npm/@nocobase/auth to a version that resolves this vulnerability.

    Fixed in 1.9.0-beta.18
  3. Upgrade

    Upgrade npm/@nocobase/auth to a version that resolves this vulnerability.

    Fixed in 1.9.23
  4. Configuration

    Explicitly set a strong, randomly generated JWT secret in the NocoBase Docker deployment using the environment variable APP_KEY. Deployments using the default Docker configuration without overriding the JWT secret are affected by CVE-2025-13877.

    NocoBase JWT Service (Docker deployment) APP_KEY = Set to a strong, randomly generated JWT secret (no public/default value) via environment variables.
  5. Operational

    Invalidate all existing JWT sessions to force complete user re-authentication after changing the JWT secret (CVE-2025-13877 mitigation).

  6. Operational

    Restart all running NocoBase instances so the new secret (APP_KEY) takes effect (CVE-2025-13877 mitigation).

Event History

Dec 2, 2025
CVE Published
via MITRE·04:02 PM
Data Sourced
via MITRE·04:02 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·04:15 PM
DescriptionSeverityWeakness
Dec 9, 2025
Advisory Published
via GitHub·05:42 PM
Data Sourced
via GitHub·05:42 PM
DescriptionWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2025-13877?

CVE-2025-13877 has been classified with a medium severity due to potential exploitation of hard-coded cryptographic keys.

2

How do I fix CVE-2025-13877?

To fix CVE-2025-13877, upgrade nocobase to the latest version beyond 1.9.4 or 2.0.0-alpha.37.

3

What components are affected by CVE-2025-13877?

CVE-2025-13877 affects the JWT Service component in nocobase versions up to 1.9.4 and 2.0.0-alpha.37.

4

Can CVE-2025-13877 be exploited remotely?

Yes, CVE-2025-13877 can potentially be exploited remotely if an attacker gains access to the relevant API_KEY.

5

What are the risks associated with CVE-2025-13877?

The risks of CVE-2025-13877 include unauthorized access to sensitive data and potential manipulation of authentication processes.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203