Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessRegister and authenticate as normal user
-
DeliverySend crafted myInAppChannels:list filter
-
ExploitInject stacked SQL via Sequelize.literal sink
-
ExecutionInvoke COPY ... TO PROGRAM
-
ImpactExecute 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
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.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.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.
Articles & Coverage 1
Executive ViewAI
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.
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
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.
SQL injection in NocoBase v2.1.21 lets an attacker reach the SQL handling path behind the checkSQL function and submit c
Sandbox escape in NocoBase's plugin-workflow-javascript (all 2.0.x releases through 2.0.23) originates from a defective
Server-side request forgery in NocoBase through v2.1.20 allows authenticated administrators to issue arbitrary outbound
PostgreSQL password hash disclosure in NocoBase 2.0.59 and earlier allows an authenticated administrator to extract pg_s
Command injection in NocoBase's @nocobase/plugin-backups prior to v2.1.19 allows an authenticated backup-management user
Server-side request forgery in NocoBase v2.1.21 lets an authenticated, low-privilege user drive the server's serverReque
EUVD-2026-44802
GHSA-p849-8hwh-84j9
NVD
CVE.org
EPSS
Exploit-DB