HexBrain

Browse / CVEs / CVE-2023-43472

CVE-2023-43472· lfprojects / mlflow

MLFlow < 2.8.1 - Sensitive Information Disclosure

highseverity
7.5CVSS score
36.6%likelihood of exploitation, next 30 days
99%of all CVEs are less likely
Readycheck to confirm it

An issue in MLFlow versions 2.8.1 and before allows a remote attacker to obtain sensitive information via a crafted request to REST API.

Impact

An attacker can access sensitive information stored in MLFlow.

Fix

Upgrade MLFlow to a version that has patched CVE-2023-43472.

How to confirm it

Send: GET {{BaseURL}}/api/2.0/preview/mlflow/experiments/list
Positive when: contains_all(body, "experiment_id\":", "artifact_location\":", "lifecycle_stage\":") and contains(header, "application/json") and status_code == 200

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

The full check
id: CVE-2023-43472

info:
  name: MLFlow < 2.8.1 - Sensitive Information Disclosure
  author: ritikchaddha
  severity: high
  description: |
    An issue in MLFlow versions 2.8.1 and before allows a remote attacker to obtain sensitive information via a crafted request to REST API.
  impact: |
    An attacker can access sensitive information stored in MLFlow.
  remediation: |
    Upgrade MLFlow to a version that has patched CVE-2023-43472.
  reference:
    - https://www.contrastsecurity.com/security-influencers/discovering-mlflow-framework-zero-day-vulnerability-machine-language-model-security-contrast-security
    - https://nvd.nist.gov/vuln/detail/CVE-2023-43472
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2023-43472
    epss-score: 0.36582
    epss-percentile: 0.98509
    cpe: cpe:2.3:a:lfprojects:mlflow:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    vendor: lfprojects
    product: mlflow
    shodan-query: http.title:"mlflow"
    fofa-query: app="MLflow"
  tags: cve,cve2023,mflow,exposure,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/api/2.0/preview/mlflow/experiments/list"

    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body, "experiment_id\":", "artifact_location\":", "lifecycle_stage\":")'
          - 'contains(header, "application/json")'
          - 'status_code == 200'
        condition: and

References

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