CVE-2020-35846

Agentejo Cockpit before 0.

Verified by Precogs Threat Research
Last Updated: Mar 21, 2026
Base Score
9.8CRITICAL

Executive Summary

CVE-2020-35846 is a critical severity vulnerability affecting appsec. It is classified as an undisclosed flaw. Ensure your systems and dependencies are patched immediately to mitigate exposure risks.

Precogs AI Insight

"The defect is inherently caused by within Agentejo Cockpit, allowing an architectural oversight in input validation. By manipulating this weakness, a threat actor can execute arbitrary code on the target system, potentially leading to full system compromise. Precogs AI Analysis Engine leverages inter-procedural taint tracking to neutralize the threat at the source level."

Exploit Probability (EPSS)
High (93.9%)
Public POC
Available
Exploit Probability
High (84%)
Public POC
Available
Affected Assets
appsecNVD Database

What is this vulnerability?

CVE-2020-35846 is categorized as a critical SQL Injection flaw. Based on our vulnerability intelligence, this issue occurs when the application fails to securely handle untrusted data boundaries.

Agentejo Cockpit before 0.11.2 allows NoSQL injection via the Controller/Auth.php check function..

This architectural defect enables adversaries to bypass intended security controls, directly manipulating the application's execution state or data layer. Immediate strategic intervention is required.

Risk Assessment

MetricValue
CVSS Base Score9.8 (CRITICAL)
Vector StringN/A
PublishedMarch 21, 2026
Last ModifiedMarch 21, 2026
Related CWEsN/A

Impact on Systems

Data Exfiltration: Full compromise of the database schema, allowing extraction of all tables, user records, and PII.

Authentication Bypass: Attackers can manipulate boolean logic in authentication queries to log in as administrators.

Remote Code Execution: In severe configurations (e.g., xp_cmdshell in MSSQL), attackers can execute shell commands on the database underlying OS.

How to fix this issue?

Implement the following strategic mitigations immediately to eliminate the attack surface.

1. Prepared Statements Migrate entirely to parameterized queries (Prepared Statements) or an Object-Relational Mapper (ORM) to decouple code from data.

2. Input Validation Implement rigorous allow-list input validation for all sorting, filtering, and query parameters.

3. Principle of Least Privilege Ensure the database service account has the minimum necessary privileges, restricting DROP, TRUNCATE, and system execution commands.

Vulnerability Signature

// Example of a vulnerable Node.js/Express snippet

const category = req.query.category;

// DANGEROUS: Direct string concatenation of user input
const query = `SELECT * FROM products WHERE category = '$\{category\}'`;

db.query(query, (err, result) =\> \{
  if (err) throw err;
  console.log(result);
\});

// SECURED: Using parameterized queries avoids SQL injection
const category = req.query.category; // Ensure scope appropriately

// Safe: The database driver treats '?' strictly as data, not executable code
const query = 'SELECT * FROM products WHERE category = ?';

db.query(query, [category], (err, result) =\> \{
  if (err) throw err;
  console.log(result);
\});

References and Sources

Vulnerability Code Signature

Attack Data Flow

StageDetail
SourceUntrusted User Input
VectorInput flows through the application logic without sanitization
SinkExecution or Rendering Sink
ImpactApplication compromise, Logic Bypass, Data Exfiltration

Vulnerable Code Pattern

# ❌ VULNERABLE: Unsanitized Input Flow
def process_request(request):
    user_input = request.GET.get('data')
    # Taint sink: processing untrusted data
    execute_logic(user_input)
    return {"status": "success"}

Secure Code Pattern

# ✅ SECURE: Input Validation & Sanitization
def process_request(request):
    user_input = request.GET.get('data')
    
    # Sanitized boundary check
    if not is_valid_format(user_input):
        raise ValueError("Invalid input format")
        
    sanitized_data = sanitize(user_input)
    execute_logic(sanitized_data)
    return {"status": "success"}

How Precogs Detects This

Precogs AI Analysis Engine maps untrusted input directly to execution sinks to catch complex application security vulnerabilities.\n

Is your system affected?

Precogs AI detects CVE-2020-35846 in compiled binaries, LLMs, and application layers — even without source code access.