| 제목 | github.com/yangjian102621 GeekAI v4.2.3 Server-Side Request Forgery |
|---|
| 설명 | ## Vulnerability Description
The `/api/download` interface accepts URL parameters provided by the user without any security verification. This interface does not require any authentication, directly using `http.Get()` to initiate an HTTP request and returning the response content to the user. This is a typical **Server-Side Request Forgery (SSRF)** vulnerability.
## Tested Version
v4.2.3
## Critical Code Location
File: `api/handler/net_handler.go`
Lines: 139-162
`func (h *NetHandler) Download(c *gin.Context) {
fileUrl := c.Query("url") // ⚠️ Source dot - user input, no validation
if fileUrl == "" {
resp.ERROR(c, types.InvalidArgs)
return
}
// ❌ No URL validation!
``` r, err := http.Get(fileUrl) // ⚠️ Sink point - directly initiate the request
if err != nil {
resp.ERROR(c, err.Error())
return
}
defer r.Body.Close()
if r.StatusCode != http.StatusOK {
resp.ERROR(c, "error status:"+r.Status)
return
}
c.Status(http.StatusOK)
_, _ = io.Copy(c.Writer, r.Body) // Return the downloaded content
} |
|---|
| 원천 | ⚠️ https://github.com/yangjian102621/geekai/issues/256 |
|---|
| 사용자 | r00tuser (UID 88975) |
|---|
| 제출 | 2026. 02. 03. AM 04:44 (3 개월 ago) |
|---|
| 모더레이션 | 2026. 02. 15. PM 06:48 (13 days later) |
|---|
| 상태 | 수락 |
|---|
| VulDB 항목 | 346166 [GeekAI 까지 4.2.4 net_handler.go Download url 권한 상승] |
|---|
| 포인트들 | 20 |
|---|