Unratedcrates.ioPublished
XMP Toolkit's XmpFile::close can trigger undefined behavior
GHSA-66fw-43h8-f8p3
- Affected
- crates.io xmp_toolkit < 1.9.0
- Fixed in
- 1.9.0· Vendor fix available
- Issue
- Affected versions of the crate failed to catch C++ exceptions raised within the XmpFile::close function. If such an exception occurred, 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::tryclose was added to allow callers to receive and process the error result. Users of all prior versions of xmptoolkit are encouraged to update to version 1.9.0 to avoid undefined behavior.
Recommended action: Upgrade to 1.9.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.