Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Clear buffers before returning them to the ArrayPool #124

Merged
merged 1 commit into from
Dec 23, 2024

Conversation

brantburnett
Copy link
Owner

It is possible that sensitive data such as PII is being compressed or decompressed using Snappier. We don't want to return such data to the ArrayPool without zeroing it first, as it could create a security vulnerability if the buffer is reused by some other portion of an application that isn't properly handling the buffer.

In some cases, we request the clear as part of the return. However, in others we know we've only used a subset of the buffer so we can optimize by only clearing the portion we've used.

This change also removes some unnecessary try..finally blocks to return arrays to the pool during compression. Compression doesn't typically throw exceptions, and in any extreme corner cases we'll simply not return the array to the pool. This simplifies the code and provides a minor performance improvement.

It is possible that sensitive data such as PII is being compressed or
decompressed using Snappier. We don't want to return such data to the
ArrayPool without zeroing it first, as it could create a security
vulnerability if the buffer is reused by some other portion of an
application that isn't properly handling the buffer.

In some cases, we request the clear as part of the return. However, in
others we know we've only used a subset of the buffer so we can
optimize by only clearing the portion we've used.

This change also removes some unnecessary try..finally blocks to return
arrays to the pool during compression. Compression doesn't typically
throw exceptions, and in any extreme corner cases we'll simply not
return the array to the pool. This simplifies the code and provides a
minor performance improvement.
@brantburnett brantburnett merged commit b6b2a97 into main Dec 23, 2024
32 checks passed
@brantburnett brantburnett deleted the buffer-clear branch December 23, 2024 14:05
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant