CVE-2026-21643 Google Chronicle · YARA-L

Detect Fortinet FortiClient EMS SQL Injection Exploitation (CVE-2026-21643) in Google Chronicle

Detects exploitation attempts targeting a SQL injection vulnerability in Fortinet FortiClient EMS (CVE-2026-21643). This KEV-listed vulnerability allows unauthenticated or authenticated attackers to inject malicious SQL statements into FortiClient EMS, potentially enabling data exfiltration, authentication bypass, or remote code execution via database-level commands such as xp_cmdshell.

MITRE ATT&CK

Tactic
Initial Access Credential Access Privilege Escalation

YARA-L Detection Query

Google Chronicle (YARA-L)
yaral
rule fortinet_forticlient_ems_sqli_cve_2026_21643 {
  meta:
    author = "df00tech Detection Engineering"
    description = "Detects SQL injection attempts targeting Fortinet FortiClient EMS (CVE-2026-21643)"
    severity = "CRITICAL"
    priority = "HIGH"
    cve = "CVE-2026-21643"
    mitre_attack = "T1190"
    reference = "https://fortiguard.fortinet.com/psirt/FG-IR-25-1142"

  events:
    (
      $e.metadata.event_type = "NETWORK_HTTP" or
      $e.metadata.event_type = "NETWORK_CONNECTION"
    )
    (
      re.regex($e.network.http.request_url, `(?i)(union\s+select|xp_cmdshell|waitfor\s+delay|sleep\s*\(|'\s*or\s+1\s*=\s*1|drop\s+table|exec\s*\(|cast\s*\(|convert\s*\()`) or
      re.regex($e.network.http.request_body, `(?i)(union\s+select|xp_cmdshell|waitfor\s+delay|sleep\s*\(|'\s*or\s+1\s*=\s*1|drop\s+table|exec\s*\()`) or
      re.regex($e.target.application, `(?i)(forticlient|fortiems)`)
    )
    $e.target.port in (443, 8013, 8014)
    $src_ip = $e.principal.ip

  condition:
    $e
}
critical severity high confidence

Chronicle YARA-L 2.0 rule detecting SQL injection attempts against FortiClient EMS by matching known injection patterns in HTTP request URLs and bodies on EMS-specific ports.

Data Sources

Chronicle SIEMNetwork telemetryFortinet log ingestionHTTP proxy logs

Required Tables

network_httpnetwork_connection

False Positives & Tuning

  • Authorized red team or penetration testing activities against EMS systems
  • Vulnerability scanners with SQL injection test modules targeting the EMS management interface
  • Legitimate EMS API calls with query parameters that partially match injection signatures
  • Security monitoring tools that replay attack signatures for detection validation

Other platforms for CVE-2026-21643


Testing Methodology

Validate this detection against 4 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 1FortiClient EMS SQL Injection - Error-Based Detection

    Expected signal: IIS log entry with 500 status code and SQL injection characters in cs-uri-query field; MSSQL Event ID 8152 or syntax error in ERRORLOG

  2. Test 2FortiClient EMS SQL Injection - UNION SELECT Data Extraction Simulation

    Expected signal: IIS POST log with UNION SELECT in request body (cs-bytes > 0); MSSQL log showing column mismatch error if column count incorrect

  3. Test 3FortiClient EMS SQL Injection - xp_cmdshell RCE Simulation (Endpoint Telemetry)

    Expected signal: Windows Security Event ID 4688 showing cmd.exe or whoami.exe spawned from sqlservr.exe; MSSQL audit log showing xp_cmdshell execution; CrowdStrike ProcessRollup2 event for cmd.exe with parent sqlservr.exe

  4. Test 4FortiClient EMS SQL Injection - Time-Based Blind Injection (WAITFOR DELAY)

    Expected signal: IIS log showing POST request with 5+ second response time (sc-time-taken > 5000); network connection held open for duration of delay; no error response body

Last updated: 2026-06-19 Research depth: standard
References (2)

Unlock Pro Content

Get the full detection package for CVE-2026-21643 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections