Thanks to visit codestin.com
Credit goes to github.com

Skip to content

DEX: read_uleb128_bounded(), fix buffer-overflow#1949

Merged
plusvic merged 1 commit into
VirusTotal:masterfrom
cblichmann:master
Aug 16, 2023
Merged

DEX: read_uleb128_bounded(), fix buffer-overflow#1949
plusvic merged 1 commit into
VirusTotal:masterfrom
cblichmann:master

Conversation

@cblichmann
Copy link
Copy Markdown
Contributor

This allows us to read ULEB128 encoded values close to the end of a buffer.

This change fixes a heap-buffer-overflow in load_encoded_method(), found by fuzzing. In that method, the fits_in_dex() check is not sufficient, as each uint32_t can occupy up to 5 bytes in ULEB128 encoding.

I did not replace all uses of read_uleb128() in dex.c, but follow-up changes should probably do that.

This allows us to read ULEB128 encoded values close to the end of a
buffer.

This change fixes a heap-buffer-overflow in `load_encoded_method()`,
found by fuzzing. In that method, the `fits_in_dex()` check is not
sufficient, as each `uint32_t` can occupy up to 5 bytes in ULEB128
encoding.

I did not replace all uses of `read_uleb128()` in `dex.c`, but follow-up
changes should probably do that.
@plusvic plusvic merged commit 84f93ac into VirusTotal:master Aug 16, 2023
cblichmann added a commit to cblichmann/yara that referenced this pull request Aug 17, 2023
This is a follow-up to PR VirusTotal#1949, replacing all remaingin uses of
`read_uleb128()` in `dex.c`.

It also fixes another heap-buffer-overflow, again found by fuzzing.

Tested with `test-dex.c`
plusvic pushed a commit that referenced this pull request Aug 18, 2023
This is a follow-up to PR #1949, replacing all remaingin uses of
`read_uleb128()` in `dex.c`.

It also fixes another heap-buffer-overflow, again found by fuzzing.

Tested with `test-dex.c`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants