opj_jp2_read_header: Check for error after parsing header.#1573
Merged
rouault merged 1 commit intouclouvain:masterfrom Jan 16, 2025
Merged
opj_jp2_read_header: Check for error after parsing header.#1573rouault merged 1 commit intouclouvain:masterfrom
rouault merged 1 commit intouclouvain:masterfrom
Conversation
Consider the case where the caller has not set the p_image pointer to NULL before calling opj_read_header(). If opj_j2k_read_header_procedure() fails while obtaining the rest of the marker segment when calling opj_stream_read_data() because the data stream is too short, then opj_j2k_read_header() will never have the chance to initialize p_image, leaving it uninitialized. opj_jp2_read_header() will check the p_image value whether opj_j2k_read_header() suceeded or failed. This may be detected as an error in valgrind or ASAN. The fix is to check whether opj_j2k_read_header() suceeded before using the output argument p_image.
Contributor
Author
Collaborator
|
thanks |
6 tasks
|
This apparently has been assigned CVE-2025-54874. I'm trying to determine if this applies to openjpeg 2.0. In that version there is no extra processing after the call to opj_j2k_read_header, so I'm inclined to believe that this was introduced in 2.5.1 with the mentioned commit. The CVE report just says "2.5.3 and earlier". |
|
I too would like to know the actual affected versions. The CVE should be updated. |
Collaborator
yes 2.5.1, 2.5.2, 2.5.3 |
|
@rouault would it be possible to have a new release with this fix ? |
Collaborator
|
openjpeg 2.5.4 has just been released: https://github.com/uclouvain/openjpeg/releases/tag/v2.5.4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consider the case where the caller has not set the p_image pointer to NULL before calling opj_read_header().
If opj_j2k_read_header_procedure() fails while obtaining the rest of the marker segment when calling opj_stream_read_data() because the data stream is too short, then opj_j2k_read_header() will never have the chance to initialize p_image, leaving it uninitialized.
opj_jp2_read_header() will check the p_image value whether opj_j2k_read_header() suceeded or failed. This may be detected as an error in valgrind or ASAN.
The fix is to check whether opj_j2k_read_header() suceeded before using the output argument p_image.