Skip to main content

Waline EUVDEUVD-2026-112060

| CVE-2026-55369 MEDIUM
Improper Authentication (CWE-287)
2026-10-28 GitHub_M GHSA-vvx2-3p2j-gx4m
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
    Send POST /api/token with non-string email
  2. Exploit
    MongoDB parseWhere drops field, empty filter matches all users
  3. Execution
    Submitted password verified against first-registered admin (user[0])
  4. Impact
    Enumerate users and credential-stuff administrator account

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK

2 techniques across 2 tactics: Defense Evasion, Initial Access

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

Exploitation Conditions

Exploitation requires a Waline server (<= 1.40.3) configured with the MongoDB storage adapter specifically - the match-all behavior depends on mongodb.js parseWhere() silently dropping a non-string key, so other storage backends are not stated to be affected. No authentication, user interaction, or special privilege is needed to trigger the injection and enumeration (AV:N/PR:N/UI:N against default MongoDB deployments). The critical LIMITING factor is that full administrator compromise additionally requires the attacker to already hold a valid password for the first-registered (administrator) account - the flaw removes the email factor and enables credential stuffing but does not disclose or bypass the password itself, and it only targets the first-returned user, not an arbitrary chosen account.

Impact

The input CVSS of 6.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N) describes a network-reachable, low-complexity, unauthenticated flaw, which on raw metrics looks like a solid priority. The real-world picture is more bounded. This is a PARTIAL authentication bypass: sending a non-string email (e.g. {"$ne": null}) to POST /api/token produces a match-all MongoDB filter so the password is checked against user[0], the first-registered account (the administrator). The injection itself is trivial and guaranteed to work against a vulnerable, MongoDB-backed instance, giving reliable user enumeration and removal of the email/identifier factor. However, actual administrator takeover is conditional on the attacker ALREADY possessing a valid password for that account (credential stuffing / reuse); the advisory itself notes this is not a zero-knowledge bypass and discloses no passwords, which is why the vendor rated it Medium. No EPSS score is provided in the input and the CVE is NOT on CISA KEV, so there is no evidence of active or widespread exploitation; the vuln.today Decision label is 'this_month' (not act_now/emergency). A PoC HTTP request is published in the GHSA advisory, but per the available data it is a reference write-up, not verified working exploit code. Net: a genuine authentication-weakening bug worth patching on a normal priority cadence, not an emergency drop-everything issue, and its upper-bound impact (admin login) depends on a precondition outside the flaw itself.

Exploit ScenarioDerived

An unauthenticated attacker sends POST /api/token with a JSON body where email is an object such as {"$ne": null} and a candidate password drawn from a breach/credential-stuffing list. The match-all filter forces Waline to check that password directly against the first-registered administrator account without the attacker ever knowing the admin's email; a reused or weak password yields an administrator session, while any attempt also confirms user existence. A PoC request is published in the GitHub Security Advisory, though it is a reference write-up rather than input-confirmed working exploit code.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet

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

Alert me

AnalysisAIv1 – Oct 28, 2026

Waline through 1.40.3 with the MongoDB storage adapter allows unauthenticated remote attackers to bypass the email/identifier factor of the login endpoint POST /api/token by submitting a non-string email such as {"$ne": null}, which the adapter silently drops and turns into a match-all query so the submitted password is checked against the first-registered user, normally the administrator. This is a partial authentication bypass, not a zero-knowledge one: it enables user enumeration and credential-stuffing amplification against the administrator account without revealing passwords, but successful login still requires a valid password for that first user. Fixed in Waline 1.41.1; a public proof-of-concept request is documented in the vendor advisory.

RemediationAI

Upgrade to Waline 1.41.1 or later; this is the vendor-released patch and adds validation rules in packages/server/src/logic/token.js requiring a valid email and a string password, plus regression tests. Apply the fix from the advisory https://github.com/walinejs/waline/security/advisories/GHSA-jf75-q64q-g65r, PR https://github.com/walinejs/waline/pull/3646, or commit https://github.com/walinejs/waline/commit/e611aed4e571c2a86103f5cee48791ca6b460360. If immediate upgrade is not possible, a compensating control is to add a reverse-proxy or application-level check that rejects POST /api/token bodies where email or password is not a JSON string before the request reaches the MongoDB adapter; this may break nonstandard clients and does not fix the underlying parseWhere() silent-drop behavior. The advisory also recommends defense in depth in mongodb.js parseWhere(): reject or coerce values that are neither strings nor supported array forms so a non-string key cannot elide the filter.

Affected VersionsENISA

waline ≤ 1.40.3

Affected Packages

npm @waline/vercel fix: 1.41.0
euvd waline no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in npm, euvd

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

Technical ContextAI · show details

Waline is a Node.js/ThinkJS comment system. The login endpoint POST /api/token reads email and password from this.post() in packages/server/src/controller/token.js and passes { email } to the MongoDB storage adapter. In packages/server/src/service/storage/mongodb.js, parseWhere() only handles string values, undefined, and array-operator forms; a plain object such as {"$ne": null} matches none of those branches, so the email key is silently omitted and the resulting filter is {}, which MongoDB find({}) resolves to every user. token.js then checks the submitted password against user[0], the first record in natural insertion order, which is the first-registered user and therefore the administrator. The root cause is missing type validation (CWE-287 improper authentication) combined with NoSQL operator handling in the storage adapter (CWE-943); the array form ["!=", ""] is a genuine operator injection that reaches $ne with the same match-all effect. The CPE cpe:2.3:a:walinejs:waline:*:*:*:*:*:*:*:* covers Waline before the fix. The limiting factor is that the password itself is still verified against the administrator hash; the flaw does not disclose passwords.

Know when Waline 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:N/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 6.5 MEDIUM

Trivial unauthenticated network request reliably yields match-all enumeration (C:L) and email-factor bypass enabling conditional admin auth (I:L); no availability impact and no password disclosure.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

DescriptionCVE.org

Waline is a comment system with backend support. Prior to version 1.41.1, the login endpoint POST /api/token reads the email field from the request body without checking its type and passes it straight into the MongoDB storage query. When email is not a string (for example a JSON object such as {"$ne": null}), the MongoDB storage adapter's parseWhere silently DROPS the field rather than rejecting the request, producing an empty filter that matches ALL users. The endpoint then verifies the submitted password against the FIRST user returned (user[0]), which in Waline is the first-registered user - the site administrator. This is a PARTIAL authentication bypass, not a full one. The attacker still needs a valid password for that first user; this is not a zero-knowledge bypass and it does not disclose passwords. Its concrete effects are: (1) the email/identifier factor is removed for the administrator account, (2) user enumeration (a non-string email never fails the "no such user" branch), and (3) credential-stuffing amplification - an attacker can test a leaked or weak password against the administrator account without knowing the administrator's email. This issue has been patched in version 1.41.1.

Threat Intelligence Overview

Prevalence
Low
niche self-hosted comment system; MongoDB-only condition narrows footprint further
Social Media
1
Sightings
Data Quality
4 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 N/A
Patch available No
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
Yes
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

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

NoSQL injection exploits databases that don't use traditional SQL syntax-like MongoDB, CouchDB, or Redis-by manipulating queries through unsanitized user input.

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