ghsa-4mhv-8rh3-4ghw
Vulnerability from github
Impact
We found two instances in the DragonFly codebase where the first return value of a function is dereferenced even when the function returns an error (figures 9.1 and 9.2). This can result in a nil dereference, and cause code to panic. The codebase may contain additional instances of the bug.
golang
request, err := source.NewRequestWithContext(ctx, parentReq.Url,
parentReq.UrlMeta.Header)
if err != nil {
log.Errorf("generate url [%v] request error: %v", request.URL, err)
span.RecordError(err)
return err
}
Eve is a malicious actor operating a peer machine. She sends a dfdaemonv1.DownRequest request to her peer Alice. Alice’s machine receives the request, resolves a nil variable in the server.Download method, and panics.
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.
{ "affected": [ { "package": { "ecosystem": "Go", "name": "github.com/dragonflyoss/dragonfly" }, "ranges": [ { "events": [ { "introduced": "0" }, { "fixed": "2.1.0" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "Go", "name": "d7y.io/dragonfly/v2" }, "ranges": [ { "events": [ { "introduced": "0" }, { "fixed": "2.1.0" } ], "type": "ECOSYSTEM" } ] } ], "aliases": [ "CVE-2025-59351" ], "database_specific": { "cwe_ids": [ "CWE-476" ], "github_reviewed": true, "github_reviewed_at": "2025-09-17T20:10:53Z", "nvd_published_at": "2025-09-17T20:15:37Z", "severity": "MODERATE" }, "details": "### Impact\nWe found two instances in the DragonFly codebase where the first return value of a function is dereferenced even when the function returns an error (figures 9.1 and 9.2). This can result in a nil dereference, and cause code to panic. The codebase may contain additional instances of the bug.\n\n```golang\nrequest, err := source.NewRequestWithContext(ctx, parentReq.Url,\nparentReq.UrlMeta.Header)\nif err != nil {\n log.Errorf(\"generate url [%v] request error: %v\", request.URL, err)\n span.RecordError(err)\n return err\n}\n```\n\nEve is a malicious actor operating a peer machine. She sends a dfdaemonv1.DownRequest request to her peer Alice. Alice\u2019s machine receives the request, resolves a nil variable in the server.Download method, and panics.\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).", "id": "GHSA-4mhv-8rh3-4ghw", "modified": "2025-09-26T16:18:25Z", "published": "2025-09-17T20:10:53Z", "references": [ { "type": "WEB", "url": "https://github.com/dragonflyoss/dragonfly/security/advisories/GHSA-4mhv-8rh3-4ghw" }, { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-59351" }, { "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-3970" } ], "schema_version": "1.4.0", "severity": [ { "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:P", "type": "CVSS_V4" } ], "summary": "DragonFly vulnerable to panics due to nil pointer dereference when using variables created alongside an error" }
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.