Skip to content

XMP Toolkit's `XmpFile::close` can trigger undefined behavior

Low severity GitHub Reviewed Published Jul 26, 2024 to the GitHub Advisory Database • Updated Jul 26, 2024

Package

cargo xmp_toolkit (Rust)

Affected versions

< 1.9.0

Patched versions

1.9.0

Description

Affected versions of the crate failed to catch C++ exceptions raised within the XmpFile::close function. If such an exception occured, it would trigger undefined behavior, typically a process abort.

This is best demonstrated in issue #230, where a race condition causes the close call to fail due to file I/O errors.

This was fixed in PR #232 (released as crate version 1.9.0), which now safely handles the exception.

For backward compatibility, the existing API ignores the error. A new API XmpFile::try_close was added to allow callers to receive and process the error result.

Users of all prior versions of xmp_toolkit are encouraged to update to version 1.9.0 to avoid undefined behavior.

References

Published to the GitHub Advisory Database Jul 26, 2024
Reviewed Jul 26, 2024
Last updated Jul 26, 2024

Severity

Low

Weaknesses

CVE ID

No known CVE

GHSA ID

GHSA-66fw-43h8-f8p3

Source code

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.