CVE-2025-59348: Dragonfly incorrectly handles a task structure’s usedTrac field
(updated )
The processPieceFromSource method (figure 4.1) is part of a task processing mechanism. The method writes pieces of data to storage, updating a Task structure along the way. The method does not update the structure’s usedTraffic field, because an uninitialized variable n is used as a guard to the AddTraffic method call, instead of the result.Size variable.
var n int64
result.Size, err = pt.GetStorage().WritePiece([skipped])
result.FinishTime = time.Now().UnixNano()
if n > 0 {
pt.AddTraffic(uint64(n))
}
A task is processed by a peer. The usedTraffic metadata is not updated during the processing. Rate limiting is incorrectly applied, leading to a denial-of-service condition for the peer.
References
- github.com/advisories/GHSA-2qgr-gfvj-qpcr
- github.com/dragonflyoss/dragonfly
- github.com/dragonflyoss/dragonfly/blob/main/docs/security/dragonfly-comprehensive-report-2023.pdf
- github.com/dragonflyoss/dragonfly/security/advisories/GHSA-2qgr-gfvj-qpcr
- nvd.nist.gov/vuln/detail/CVE-2025-59348
- pkg.go.dev/vuln/GO-2025-3963
Code Behaviors & Features
Detect and mitigate CVE-2025-59348 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →