提交 #891889: Forgejo 15.0.4 SSRF信息

标题Forgejo 15.0.4 SSRF
描述Forgejo restricts repository migration and mirror sources by rejecting loopback and private network destinations. This protection relies on a DNS lookup performed during URL validation (net.LookupIP). For plain Git migrations, however, the actual clone is performed by an external git subprocess. That subprocess performs its own DNS resolution when establishing the network connection and is not protected by Forgejo's connect-time IP validation (hostmatcher.NewDialContext). Because validation and connection perform independent DNS resolutions, an attacker controlling DNS responses (DNS rebinding) can return: a public IP during Forgejo's validation (request accepted), then 127.0.0.1 or another internal address when the Git subprocess connects. As a result, the migration succeeds even though a direct request to the same internal address is correctly rejected.
来源⚠️ https://codeberg.org/forgejo/forgejo/issues/13433
用户
 spooky (UID 96038)
提交2026-07-15 15時28分 (2 月前)
管理2026-08-29 21時04分 (2 months later)
状态已接受
VulDB条目397072 [Forgejo 直到 15.0.4 Repository Migration is_migrate_allowed.go net.LookupIP 权限提升]
积分19

Do you need the next level of professionalism?

Upgrade your account now!