Description
Qinglong is a timed task management platform supporting Python3, JavaScript, Shell, and Typescript. Prior to 2.20.1, the init guard middleware in back/loaders/express.ts checks /api/user/init but not /open/user/init, while rewrite('/open/*', '/api/$1') rewrites the whitelisted /open/* path after JWT authentication and the guard have passed; an unauthenticated attacker can send PUT /open/user/init to reset administrator credentials on an initialized instance. This issue is fixed in 2.20.1.
Published: 2026-07-15
Score: 9.3 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises from an incomplete authentication check in Qinglong’s init guard middleware. An unauthenticated attacker can issue a PUT request to /open/user/init, which bypasses normal JWT protection and resets the administrator password. This results in privilege escalation and complete compromise of the platform. The weakness is a classic authentication bypass (CWE-287).

Affected Systems

Qinglong by whyour, versions prior to 2.20.1 are affected. Upgrading to 2.20.1 or later removes the flaw.

Risk and Exploitability

The CVSS score of 9.3 marks this flaw as critical, while an EPSS score of less than 1% suggests low current exploitation likelihood. It is not listed in the CISA KEV catalog. The exploit requires no prior authentication and relies on the open /open/* path being rewritten after JWT authentication, making it straightforward for an attacker to hit the vulnerable endpoint.

Generated by OpenCVE AI on July 31, 2026 at 02:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Qinglong to version 2.20.1 or later. This is the only officially recommended fix.
  • If immediate upgrade is not possible, block external access to the /open/* API endpoints at the network or firewall level to prevent unauthenticated requests.
  • Audit and disable the open user initialization route or configure the server to require authentication for /open/* paths to mitigate the risk while a patch is applied.

Generated by OpenCVE AI on July 31, 2026 at 02:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 18 Jul 2026 03:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 15 Jul 2026 23:30:00 +0000

Type Values Removed Values Added
First Time appeared Whyour
Whyour qinglong
Vendors & Products Whyour
Whyour qinglong

Wed, 15 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
Description Qinglong is a timed task management platform supporting Python3, JavaScript, Shell, and Typescript. Prior to 2.20.1, the init guard middleware in back/loaders/express.ts checks /api/user/init but not /open/user/init, while rewrite('/open/*', '/api/$1') rewrites the whitelisted /open/* path after JWT authentication and the guard have passed; an unauthenticated attacker can send PUT /open/user/init to reset administrator credentials on an initialized instance. This issue is fixed in 2.20.1.
Title Qinglong: Incomplete fix for CVE-2026-3965: Improper Authentication
Weaknesses CWE-287
References
Metrics cvssV4_0

{'score': 9.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-18T02:37:14.779Z

Reserved: 2026-06-16T21:59:57.018Z

Link: CVE-2026-55445

cve-icon Vulnrichment

Updated: 2026-07-18T02:37:09.195Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T02:45:04Z

Weaknesses