Skip to content

Files are closed without error check

Low
gaius-qi published GHSA-x3vj-c8hw-4g7f Sep 17, 2025

Package

gomod github.com/dragonflyoss/dragonfly (Go)

Affected versions

<2.1.0

Patched versions

2.1.0

Description

Impact

Several methods in the DragonFly2 codebase defer file close operations after writing to a file. This may introduce undefined behavior, as the file’s content may not be flushed to disk until the file has been closed.
Errors arising from the inability to flush content to disk while closing will not be caught, and the application may assume that content was written to disk successfully. See the example in figure 7.1.

file, err := os.OpenFile(t.DataFilePath, os.O_RDWR, defaultFileMode)
if err != nil {
       return 0, err
}
defer file.Close()

The bug occurs in multiple locations throughout the codebase.

The server on which the DragonFly2 application runs has a disk that periodically fails to flush content due to a hardware failure. As a result, certain methods in the codebase sometimes fail to write content to disk. This causes undefined behavior.

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 [email protected].

Severity

Low

CVE ID

No known CVE

Weaknesses

No CWEs

Credits