| Título | github.com/yangjian102621 GeekAI v4.2.3 Server-Side Request Forgery |
|---|
| Descrição | ## 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
} |
|---|
| Fonte | ⚠️ https://github.com/yangjian102621/geekai/issues/256 |
|---|
| Utilizador | r00tuser (UID 88975) |
|---|
| Submissão | 03/02/2026 04h44 (há 3 meses) |
|---|
| Moderação | 15/02/2026 18h48 (13 days later) |
|---|
| Estado | Aceite |
|---|
| Entrada VulDB | 346166 [GeekAI até 4.2.4 net_handler.go Download url Elevação de Privilégios] |
|---|
| Pontos | 20 |
|---|