CVE-2025-59354: Dragonfly has weak integrity checks for downloaded files

Published Sep 17, 2025
·
Updated

Impact The DragonFly2 uses a variety of hash functions, including the MD5 hash. This algorithm does not provide collision resistance; it is secure only against preimage attacks. While these security guarantees may be enough for the DragonFly2 system, it is not completely clear if there are any scenarios where lack of the collision resistance would compromise the system. There are no clear benefits to keeping the MD5 hash function in the system.

golang var pieceDigests []string for i := int32(0); i < t.TotalPieces; i++ { pieceDigests = append(pieceDigests, t.Pieces[i].Md5) } digest := digest.SHA256FromStrings(pieceDigests...) if digest != t.PieceMd5Sign { t.Errorf("invalid digest, desired: %s, actual: %s", t.PieceMd5Sign, digest) t.invalid.Store(true) return ErrInvalidDigest }

Alice, a peer in the DragonFly2 system, creates two images: an innocent one, and one with malicious code. Both images consist of two pieces, and Alice generates the pieces so that their respective MD5 hashes collide (are the same). Therefore, the PieceMd5Sign metadata of both images are equal. Alice shares the innocent image with other peers, who attest to their validity (i.e., that it works as expected and is not malicious). Bob wants to download the image and requests it from the peer-to-peer network. After downloading the image, Bob checks its integrity with a SHA256 hash that is known to him. Alice, who is participating in the network, had already provided Bob the other image, the malicious one. Bob unintentionally uses the malicious image.

Patches

- Dragonfy v2.1.0 and above.

Workarounds

There are no effective workarounds, beyond upgrading.

References

A third party security audit was performed by Trail of Bits, you can see the full report.

If you have any questions or comments about this advisory, please email us at dragonfly-maintainers@googlegroups.com.

Other sources

Dragonfly is an open source P2P-based file distribution and image acceleration system. Prior to 2.1.0, the DragonFly2 uses a variety of hash functions, including the MD5 hash, for downloaded files. This allows attackers to replace files with malicious ones that have a colliding hash. This vulnerability is fixed in 2.1.0.

MITRE

Affected Software

4 affected componentsFixes available
DragonFly DragonFly<2.1.0
linuxfoundation Dragonfly Go<2.1.0
go/d7y.io/dragonfly/v2<2.1.0
2.1.0
go/github.com/dragonflyoss/dragonfly<2.1.0
2.1.0

Event History

Sep 17, 2025
CVE Published
via MITRE·07:57 PM
Data Sourced
via MITRE·07:57 PM
DescriptionWeakness
Advisory Published
via GitHub·08:11 PM
Data Sourced
via GitHub·08:11 PM
DescriptionWeaknessAffected Software
Data Sourced
via NVD·08:15 PM
RemedyDescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2025-59354?

CVE-2025-59354 is a vulnerability related to the use of the MD5 hash function, which lacks collision resistance.

2

How do I fix CVE-2025-59354?

To fix CVE-2025-59354, you should upgrade your DragonFly software to version 2.1.0 or later.

3

What versions of DragonFly are affected by CVE-2025-59354?

CVE-2025-59354 affects all versions of DragonFly prior to 2.1.0.

4

What are the implications of CVE-2025-59354 on security?

CVE-2025-59354 may expose systems to risks associated with hash collisions, potentially allowing attackers to exploit this weakness.

5

Is the MD5 hash secure in the context of CVE-2025-59354?

In the context of CVE-2025-59354, the MD5 hash is not secure due to its lack of collision resistance.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203