Skip to main content

NocoBase CVE-2026-52887

| EUVDEUVD-2026-44802 CRITICAL
SQL Injection (CWE-89)
2026-07-15 GitHub_M GHSA-p849-8hwh-84j9
10.0
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Access
    Register and authenticate as normal user
  2. Delivery
    Send crafted myInAppChannels:list filter
  3. Exploit
    Inject stacked SQL via Sequelize.literal sink
  4. Execution
    Invoke COPY ... TO PROGRAM
  5. Impact
    Execute OS commands on DB host

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

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

Exploitation Conditions

Requires a valid authenticated NocoBase account (any self-signed-up user; the description says 'signed-up authenticated user'), network reachability to the application, and a PostgreSQL backend that permits stacked statements. Full escalation to command execution additionally requires the PostgreSQL role NocoBase connects as to have superuser or pg_execute_server_program privileges, as COPY ... TO PROGRAM is gated on that; without it, the attacker is limited to arbitrary SQL read/write rather than OS commands. Limiting factors: authentication is mandatory (contradicting the vendor's PR:N rating), so instances that disable public registration are not exploitable by anonymous outsiders; the vulnerable path lives in the optional in-app-message notification plugin, so deployments that do not run that plugin are unaffected; and RCE severity depends on the database privilege level described above.

Impact

The signals are mostly aligned toward high priority but contain one material conflict. The vendor CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H = 10.0) claims no privileges required (PR:N), yet the description explicitly states exploitation requires a 'signed-up authenticated user' - these contradict each other; PR:L is more defensible and would lower the base score slightly. That caveat aside, real-world risk is high: the attack is network-reachable, low-complexity, requires no user interaction, and yields command execution (scope-changed, full C/I/A loss) on the DB host. EPSS was not provided, so exploitation-probability cannot be quantified. There is no CISA KEV listing and no publicly identified exploit, so this is not confirmed active exploitation; however, the fix commit ships an injection regression test ('0) OR 1=1 --'), which effectively discloses the injection point and lowers the bar for exploit development. SSVC data was not supplied, but by inspection the technical impact is total and the attack is likely automatable once authenticated. Bottom line: treat as a genuine high/critical priority for any internet-exposed NocoBase instance that allows user self-signup, while noting the authentication prerequisite meaningfully limits fully anonymous mass exploitation.

Exploit ScenarioDerived

An attacker registers an ordinary account on an internet-facing NocoBase instance, authenticates, and sends GET /api/myInAppChannels:list with a crafted filter[latestMsgReceiveTimestamp][$lt] payload that closes the intended clause and appends stacked SQL. They then issue COPY (SELECT '') TO PROGRAM '<shell command>' to run OS commands on the database host. Given AV:N/AC:L and no user interaction, this is straightforward to automate once an account exists; no public exploit is currently published but the patched code discloses the exact injection point.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.6% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Jul 15, 2026

SQL injection in NocoBase's @nocobase/plugin-notification-in-app-message (before 2.0.61) lets any signed-up authenticated user reach GET /api/myInAppChannels:list and inject into the filter[latestMsgReceiveTimestamp][$lt] parameter, which is concatenated into a Sequelize.literal() template with no escaping or parameter binding. Because PostgreSQL permits stacked statements through this sink, an attacker can run arbitrary SQL and escalate to operating-system command execution via COPY ... TO PROGRAM. No public exploit identified at time of analysis and the flaw is not in CISA KEV, but the code fix and regression tests are public in the vendor commit, and the vendor rates it CVSS 10.0.

RemediationAI

Vendor-released patch: 2.0.61 - upgrade NocoBase to 2.0.61 or later, which replaces the unsafe Sequelize.literal() concatenation with validated/parameterized handling and rejects non-numeric timestamp input (see the release at https://github.com/nocobase/nocobase/releases/tag/v2.0.61 and advisory GHSA-p849-8hwh-84j9). If you cannot patch immediately, reduce exposure by disabling or unloading the in-app message notification plugin (removes the vulnerable endpoint but breaks in-app notifications), disabling public user self-signup so untrusted accounts cannot obtain the authenticated access the attack needs, and restricting network access to the NocoBase instance to trusted users. At the PostgreSQL layer, run the database service account as a low-privilege, non-superuser role to blunt COPY ... TO PROGRAM (note superuser or pg_execute_server_program membership is required for TO PROGRAM, so removing it prevents the RCE escalation even if injection occurs); these controls limit but do not fully eliminate SQL-injection data exposure, so patching remains the priority.

Affected VersionsENISA

nocobase < 2.0.61

Affected Packages

npm @nocobase/plugin-notification-in-app-message fix: 2.0.61
euvd nocobase fix: 2.0.61

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

NocoBase is an open-source no-code/low-code platform built on Node.js and the Sequelize ORM, backed here by PostgreSQL. The vulnerable endpoint filters in-app notification channels by the timestamp of the latest received message. Instead of passing the user-supplied $lt value as a bound parameter, the plugin embedded it inside a Sequelize.literal() call - a raw-SQL escape hatch that Sequelize inserts verbatim into the generated query. This is a textbook CWE-89 (SQL Injection): untrusted input crosses into a raw-SQL string. The severity is amplified by two PostgreSQL-specific behaviors: the driver's support for stacked/multi-statement queries (allowing '...; <attacker SQL>') and the COPY ... TO PROGRAM feature, which executes shell commands on the database server host, turning a data-layer injection into remote command execution. The affected component per CPE is cpe:2.3:a:nocobase:nocobase across all versions prior to the fix.

Know when Nocobase 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 10.0 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
vuln.today AI 9.9 CRITICAL

Network-reachable low-complexity SQLi, but a signed-up authenticated account is required so PR:L not PR:N; COPY TO PROGRAM executes OS commands beyond the DBMS, so scope changes with full C/I/A loss.

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

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

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

Lifecycle Timeline

2
Patch available
Jul 15, 2026 - 22:33 EUVD
CVE Published
Jul 15, 2026 - 20:16 cve.org
CRITICAL 10.0

DescriptionCVE.org

NocoBase is an AI-powered no-code/low-code platform for building business applications and enterprise solutions. Prior to 2.0.61, NocoBase @nocobase/plugin-notification-in-app-message exposed GET /api/myInAppChannels:list, where the filter[latestMsgReceiveTimestamp][$lt] value was inserted into a Sequelize.literal() template string without escaping or parameter binding, allowing a signed-up authenticated user to run stacked PostgreSQL statements and potentially execute commands with COPY ... TO PROGRAM. This vulnerability is fixed in 2.0.61.

Executive ViewAI

Why It Matters

NocoBase versions before 2.0.61 contain a critical SQL injection vulnerability in the notification plugin that allows authenticated users to execute arbitrary database queries and operating-system commands on affected servers. Organizations running vulnerable NocoBase instances face immediate risk of data exfiltration, system compromise, and operational disruption.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Deploy WAF rules to reject requests with SQL metacharacters in the latestMsgReceiveTimestamp filter parameter; (2) restrict network access from the application layer to the PostgreSQL database to specified user accounts with minimal privileges; (3) disable the @nocobase/plugin-notification-in-app-message plugin if not in active use; (4) enable database query logging and monitor for unusual statements containing COPY or EXECUTE; (5) enforce IP-based access controls on the /api/myInAppChannels:list endpoint to trusted client networks only.

Threat Intelligence Overview

EPSS Score
0.6%
Top 56% exploitable
Prevalence
Low
niche open-source no-code platform, limited production enterprise footprint
Threat Intel
1
1 source
Social Media
2
Sightings
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 CRITICAL
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
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
Out-of-Cycle
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
Very High

Priority Score

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

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

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