{"id":"GHSA-66fw-43h8-f8p3","aliases":["RUSTSEC-2024-0360"],"status":"published","title":"XMP Toolkit's `XmpFile::close` can trigger undefined behavior","description":"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.\n\nThis is best demonstrated in [issue #230](https://github.com/adobe/xmp-toolkit-rs/issues/230), where a race condition causes the `close` call to fail due to file I/O errors.\n\nThis was fixed in [PR #232](https://github.com/adobe/xmp-toolkit-rs/pull/232) (released as crate version 1.9.0), which now safely handles the exception.\n\nFor 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.\n\nUsers of all prior versions of `xmp_toolkit` are encouraged to update to version 1.9.0 to avoid undefined behavior.","facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-754"],"published":"2024-07-26T12:00:00Z","modified":"2025-10-28T06:29:23Z","fixes":[{"ecosystem":"crates.io","package":"xmp_toolkit","fixed_in":["1.9.0"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"crates.io","package":"xmp_toolkit","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.9.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"xmp_toolkit","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.9.0"}]}]},{"source":"osv","ecosystem":"crates.io","package":"xmp_toolkit","ranges":[{"type":"SEMVER","events":[{"introduced":"0.0.0-0"},{"fixed":"1.9.0"}]}]}],"references":[{"url":"https://github.com/adobe/xmp-toolkit-rs/issues/230","tags":["web"]},{"url":"https://github.com/adobe/xmp-toolkit-rs/issues/233","tags":["web","report"]},{"url":"https://github.com/adobe/xmp-toolkit-rs/pull/232","tags":["web"]},{"url":"https://rustsec.org/advisories/RUSTSEC-2024-0360.html","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-66fw-43h8-f8p3"},{"url":"https://github.com/adobe/xmp-toolkit-rs","tags":["package"]},{"url":"https://crates.io/crates/xmp_toolkit","tags":["package"]}],"sources":{"ghsa":[{"id":"GHSA-66fw-43h8-f8p3","title":"XMP Toolkit's `XmpFile::close` can trigger undefined behavior","description":"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.\n\nThis is best demonstrated in [issue #230](https://github.com/adobe/xmp-toolkit-rs/issues/230), where a race condition causes the `close` call to fail due to file I/O errors.\n\nThis was fixed in [PR #232](https://github.com/adobe/xmp-toolkit-rs/pull/232) (released as crate version 1.9.0), which now safely handles the exception.\n\nFor 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.\n\nUsers of all prior versions of `xmp_toolkit` are encouraged to update to version 1.9.0 to avoid undefined behavior.","status":"published","published":"2024-07-26T21:14:54Z","modified":"2025-05-15T21:23:43Z","cwes":["CWE-754"],"updated_at":"2026-11-02T14:38:43.998596Z"}],"osv":[{"id":"GHSA-66fw-43h8-f8p3","title":"XMP Toolkit's `XmpFile::close` can trigger undefined behavior","description":"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.\n\nThis is best demonstrated in [issue #230](https://github.com/adobe/xmp-toolkit-rs/issues/230), where a race condition causes the `close` call to fail due to file I/O errors.\n\nThis was fixed in [PR #232](https://github.com/adobe/xmp-toolkit-rs/pull/232) (released as crate version 1.9.0), which now safely handles the exception.\n\nFor 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.\n\nUsers of all prior versions of `xmp_toolkit` are encouraged to update to version 1.9.0 to avoid undefined behavior.","status":"published","published":"2024-07-26T21:14:54Z","modified":"2025-10-28T06:29:23.31048Z","cwes":["CWE-754"],"updated_at":"2026-11-02T15:46:39.266402Z"},{"id":"RUSTSEC-2024-0360","title":"`XmpFile::close` can trigger UB","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.\n\nThis is best demonstrated in [issue #230](https://github.com/adobe/xmp-toolkit-rs/issues/230), where a race condition causes the `close` call to fail due to file I/O errors.\n\nThis was fixed in [PR #232](https://github.com/adobe/xmp-toolkit-rs/pull/232) (released as crate version 1.9.0), which now safely handles the exception.\n\nFor 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.\n\nUsers of all prior versions of `xmp_toolkit` are encouraged to update to version 1.9.0 to avoid undefined behavior.","status":"published","published":"2024-07-26T12:00:00Z","modified":"2025-10-28T06:29:23.31048Z","updated_at":"2026-11-02T15:53:39.971022Z"}]}}
