Skip to main content

Habitica CVE-2026-54461

| EUVDEUVD-2026-86327 MEDIUM
Inefficient Regular Expression Complexity (ReDoS) (CWE-1333)
2026-09-24 GitHub_M
6.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to Habitica API
  2. Delivery
    Call /groups/:groupId/members with malicious regex in search param
  3. Exploit
    Unsanitized input compiled via new RegExp
  4. Execution
    Catastrophic backtracking pins event loop
  5. Impact
    Node.js process stalls, denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V2 - Validation and Business Logic Regex complexity limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated Habitica account (PR:L) able to call GET /api/v3/groups/:groupId/members; exploitation is possible against default configurations of affected versions 4.172.1 through 5.48.1 because the search query parameter is passed directly into new RegExp(req.query.search, 'i') with no sanitization. No special non-default feature or configuration is needed beyond having a valid session and access to a group. Limiting factors: authentication is mandatory (unauthenticated callers cannot reach the sink), and impact is confined to availability - no data is read or modified. On single-tenant self-hosted deployments the blast radius is limited to that operator; on the shared hosted instance one account can degrade service for all users.

Impact

This is a CWE-1333 Regular Expression Denial of Service (ReDoS) in Habitica's member-search route. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base 6.5) is credible and self-consistent: network-reachable, low complexity, requires an authenticated account (PR:L), no user interaction, and impact is purely availability (A:H) with no confidentiality or integrity effect - matching a DoS. Because Node.js executes JavaScript on a single event-loop thread, a catastrophically-backtracking regex passed to new RegExp(req.query.search) blocks the entire process, so A:H (rather than A:L) is defensible for a shared multi-tenant instance. No EPSS score, KEV listing, or POC was provided; per available signals this is 'no public exploit identified at time of analysis.' The commit fix (escaping the search input before regex construction) is confirmed, so this is a real, patch-available bug but a moderate operational-risk item rather than a critical one: it requires a valid authenticated session and yields only denial of service, not code execution or data disclosure. Priority is elevated for the operator of the shared hosted instance (one abusive account can degrade all users) and lower for isolated self-hosters.

Exploit ScenarioDerived

An attacker registers or uses any authenticated Habitica account and calls GET /api/v3/groups/:groupId/members with a search query value crafted as a pathological, catastrophically-backtracking regular expression. The unsanitized value is compiled via new RegExp() and evaluated against member usernames, pinning the Node.js event loop at 100% CPU and stalling or hanging the process for all users. No public POC is referenced, but ReDoS payloads are trivial to construct and the low attack complexity makes exploitation straightforward.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 24, 2026

A regular expression denial of service in Habitica's group member-search endpoint allows an authenticated user to send a crafted search query parameter to GET /api/v3/groups/:groupId/members that is compiled directly into a JavaScript RegExp, causing catastrophic backtracking that degrades application response times or halts Node.js worker processes. The flaw affects Habitica versions 4.172.1 through 5.48.1 in default configurations; both self-hosted instances and the shared hosted service are exposed, with the hosted instance allowing a single account to degrade service for all users. Exploitation requires only a valid account and membership in a group (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, base 6.5), and no public exploit code was identified at time of analysis. The issue is fixed in version 5.48.2.

RemediationAI

Vendor-released patch: upgrade to Habitica 5.48.2 (https://github.com/HabitRPG/habitica/releases/tag/v5.48.2), which incorporates the upstream fix 7b7dc255dff1564935675399ff168e8a91b8afca escaping the search parameter before RegExp construction; the vendor advisory is at https://github.com/HabitRPG/habitica/security/advisories/GHSA-x772-22c9-gq58. If immediate upgrade is not possible, apply the same escaping logic by hand - replace new RegExp(req.query.search, 'i') with new RegExp(escapedSearch, 'i') using a library such as escape-string-regexp, or drop $regex entirely in favor of an anchored, escaped prefix match; note that hand-patching server source diverges from the vendor branch and must be reverted when upgrading. Additional compensating controls with trade-offs: enforce a maximum length and character whitelist on the search query parameter at the reverse proxy or application middleware layer (blocks nested-quantifier payloads but rejects legitimate searches containing special characters); rate-limit or temporarily block /api/v3/groups/:groupId/members per account (reduces blast radius but degrades a normal feature and is ineffective against a single slow request); run the Node.js process with a supervisor that restarts on hang and front it with a request timeout (recovers availability but does not prevent the blocking event loop or in-flight user impact); and note that generic WAF regex-inspection rules are prone to false positives on this endpoint and should be tested before enforcement. Because exploitation is authenticated, invalidating sessions of untrusted or automated accounts on the shared instance provides only marginal protection and is not a substitute for the patch.

Affected VersionsENISA

habitica 4.172.1, < 5.48.2

Affected Packages

euvd habitica_4_172_1 fix: 5.48.2

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is CWE-1333 (Inefficient Regular Expression Complexity, commonly called ReDoS). Habitica's members controller built a MongoDB query of the form { 'auth.local.username': { $regex: new RegExp(req.query.search, 'i') } }, meaning the attacker-controlled search query string was passed to the JavaScript RegExp constructor without escaping or length/complexity validation. Because user-supplied text becomes the regex pattern itself rather than a literal match value (as it would with the MongoDB $regex string operator plus $options, or after escaping metacharacters), an attacker can submit nested quantifiers such as (a+)+$ that trigger exponential backtracking against non-matching input, blocking Node.js's single-threaded event loop. The upstream fix in commit 7b7dc255dff1564935675399ff168e8a91b8afca replaces new RegExp(req.query.search, 'i') with new RegExp(escapedSearch, 'i'), escaping regex metacharacters so the parameter is treated as a literal substring search. Node.js has no built-in regex timeout, so the affected runtime cannot interrupt a runaway match; the technology stack is a Node.js backend with MongoDB regex-based querying, and the CPE cpe:2.3:a:habitrpg:habitica:*:*:*:*:*:*:*:* indicates the whole product line is the affected component.

Know when Habitica gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 6.5 MEDIUM

Network-reachable authenticated endpoint (PR:L, AC:L), single-threaded Node.js event loop makes one crafted regex halt the whole process (A:H); no confidentiality or integrity impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

1
Patch available
Sep 24, 2026 - 19:04 EUVD

DescriptionCVE.org

Habitica is a habit tracker application that treats goals like a role-playing game. From 4.172.1 until 5.48.2, a query parameter on Habitica's /api/v3/groups/:groupId/members route is not sanitized before being interpreted as a regular expression. An authenticated caller can supply a computationally expensive regular expression that degrades application performance or halts Node.js processes. This issue is fixed in version 5.48.2.

Threat Intelligence Overview

EPSS Score
0.3%
Top 80% exploitable
Prevalence
Low
niche open-source habit-tracker; one main hosted instance plus scattered self-hosters
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy