Response playbooks, investigation guides, and Atomic Red Team tests are Pro-only. Upgrade to unlock the full detection package for CVE-2026-52887.

Unlock with Pro - from £29/user/mo
CVE-2026-52887 Google Chronicle · YARA-L

Detect NocoBase myInAppChannels:list SQL Injection to PostgreSQL Superuser RCE (CVE-2026-52887) in Google Chronicle

CVE-2026-52887 is a critical (CVSS 10.0) SQL injection vulnerability in the @nocobase/plugin-notification-in-app-message plugin's /api/myInAppChannels:list endpoint filter parameter, affecting NocoBase versions <= 2.0.60. An unauthenticated or low-privileged attacker can inject arbitrary SQL through the filter query parameter, which is passed insufficiently sanitized into the underlying Sequelize/PostgreSQL query builder. Because NocoBase's database connection frequently runs with elevated (superuser) PostgreSQL privileges to support its dynamic schema/collection features, successful injection can be escalated via COPY ... TO/FROM PROGRAM or dblink/plpythonu extensions to achieve full remote code execution on the database host. Patched in v2.0.61 (PR #9630, commit 68d64e3).

MITRE ATT&CK

Tactic
Initial Access Execution

YARA-L Detection Query

Google Chronicle (YARA-L)
yaral
rule cve_2026_52887_nocobase_sqli {
  meta:
    author = "detection-engineering"
    description = "Detects SQL injection attempts against NocoBase myInAppChannels:list filter (CVE-2026-52887)"
    severity = "CRITICAL"
    cve = "CVE-2026-52887"
  events:
    $e.metadata.event_type = "NETWORK_HTTP"
    $e.target.url = /myInAppChannels:list/
    $e.network.http.method = "GET" or $e.network.http.method = "POST"
    re.regex($e.target.url, `(?i)(COPY\s+.*PROGRAM|dblink|plpythonu|UNION\s+SELECT|pg_read_file|lo_import|lo_export|information_schema)`)
  match:
    $e.principal.ip over 5m
  condition:
    $e
}
critical severity high confidence

Chronicle YARA-L rule identifying HTTP requests to the vulnerable NocoBase endpoint whose URL/query contains SQL injection sequences indicative of CVE-2026-52887 exploitation, correlated by source IP over a 5-minute window.

Data Sources

Chronicle Network HTTP EventsWeb Proxy Logs ingested into Chronicle

Required Tables

NETWORK_HTTP

False Positives & Tuning

  • Vulnerability scanners performing authorized checks
  • Duplicate log ingestion from multiple collectors inflating match counts
  • Non-malicious requests containing coincidental keyword substrings

Other platforms for CVE-2026-52887


Testing Methodology

Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Simulate SQL Injection Probe Against myInAppChannels:list

    Expected signal: HTTP access log entry showing GET /api/myInAppChannels:list with URL-encoded filter parameter containing 'UNION SELECT'.

  2. Test 2Simulate PostgreSQL COPY PROGRAM Injection Payload

    Expected signal: HTTP log entry with decoded filter containing 'COPY' and 'PROGRAM'; if unpatched and role is superuser, PostgreSQL log shows the executed COPY PROGRAM statement and spawned OS process.

  3. Test 3Validate Patched Version Rejects Injection Payload

    Expected signal: HTTP access log entry showing the same injection attempt, but application logs indicate a validation error (400 Bad Request) rather than a raw query execution.

Unlock playbooks & atomic tests with Pro

Get the full detection package for CVE-2026-52887 — response playbook and atomic red team tests, plus investigation guidance and hunting queries.

df00tech Pro — £29/user/month

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections