The vulnerability is a Server-Side Request Forgery (SSRF) in the LFS import functionality of soft-serve. The root cause is the use of the default Go HTTP client (http.DefaultClient) without any validation of the user-provided LFS endpoint URL. An authenticated user can import a repository and specify a malicious URL for the --lfs-endpoint flag. The application uses this URL to create an LFS client and subsequently makes HTTP requests to it.
The function newHTTPClient in pkg/lfs/http_client.go is responsible for creating the insecure client. The (*BasicTransferAdapter).performRequest function in pkg/lfs/basic_transfer.go then uses this client to make requests. By hosting a fake LFS server, an attacker can trick the server into making requests to internal services and read the responses.
The vulnerability is triggered initially through the ImportRepository function in pkg/backend/repo.go. If the repository is imported as a mirror, the vulnerability becomes persistent, as the (*Mirror).Run function in pkg/jobs/mirror.go will periodically sync the repository and re-trigger the SSRF.