{"schema_version":"1.9.0","id":"GHSA-mcvp-rpgg-9273","published":"2025-09-17T20:23:25Z","modified":"2025-09-26T16:20:03Z","aliases":["CVE-2025-59410","GO-2025-3974"],"summary":"DragonFly's tiny file download uses hard coded HTTP protocol","details":"### Impact\nThe code in the scheduler for downloading a tiny file is hard coded to use the HTTP protocol, rather than HTTPS. This means that an attacker could perform a Man-in-the-Middle attack, changing the network request so that a different piece of data gets downloaded. Due to the use of weak integrity checks (TOB-DF2-15), this modification of the data may go unnoticed.\n\n```golang\n// DownloadTinyFile downloads tiny file from peer without range.\nfunc (p *Peer) DownloadTinyFile() ([]byte, error) {\n       ctx, cancel := context.WithTimeout(context.Background(),\ndownloadTinyFileContextTimeout)\n       defer cancel()\n       // Download url:\nhttp://${host}:${port}/download/${taskIndex}/${taskID}?peerId=${peerID}\n       targetURL := url.URL{\nScheme:\n}\n\"http\",\nfmt.Sprintf(\"%s:%d\", p.Host.IP, p.Host.DownloadPort),\nfmt.Sprintf(\"download/%s/%s\", p.Task.ID[:3], p.Task.ID),\nHost:\nPath:\nRawQuery: fmt.Sprintf(\"peerId=%s\", p.ID),\n```\n\nA network-level attacker who cannot join a peer-to-peer network performs a Man-in-the-Middle attack on peers. The adversary can do this because peers (partially) communicate over plaintext HTTP protocol. The attack chains this vulnerability with the one described in TOB-DF2-15 to replace correct files with malicious ones. Unconscious peers use the malicious files.\n\n### Patches\n\n- Dragonfy v2.1.0 and above.\n\n### Workarounds\n\nThere are no effective workarounds, beyond upgrading.\n\n### References\n\nA third party security audit was performed by Trail of Bits, you can see the [full report](https://github.com/dragonflyoss/dragonfly/blob/main/docs/security/dragonfly-comprehensive-report-2023.pdf).\n\nIf you have any questions or comments about this advisory, please email us at [dragonfly-maintainers@googlegroups.com](mailto:dragonfly-maintainers@googlegroups.com).","affected":[{"package":{"name":"github.com/dragonflyoss/dragonfly","ecosystem":"Go","purl":"pkg:golang/github.com/dragonflyoss/dragonfly"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.1.0"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/09/GHSA-mcvp-rpgg-9273/GHSA-mcvp-rpgg-9273.json"}},{"package":{"name":"d7y.io/dragonfly/v2","ecosystem":"Go","purl":"pkg:golang/d7y.io/dragonfly/v2"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.1.0"}]}],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/09/GHSA-mcvp-rpgg-9273/GHSA-mcvp-rpgg-9273.json"}}],"references":[{"type":"WEB","url":"https://github.com/dragonflyoss/dragonfly/security/advisories/GHSA-mcvp-rpgg-9273"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-59410"},{"type":"PACKAGE","url":"https://github.com/dragonflyoss/dragonfly"},{"type":"WEB","url":"https://github.com/dragonflyoss/dragonfly/blob/main/docs/security/dragonfly-comprehensive-report-2023.pdf"},{"type":"WEB","url":"https://pkg.go.dev/vuln/GO-2025-3974"}],"database_specific":{"cwe_ids":["CWE-311"],"github_reviewed":true,"github_reviewed_at":"2025-09-17T20:23:25Z","nvd_published_at":"2025-09-17T20:15:38Z","severity":"MODERATE"},"severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"},{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P"}]}