Skip to content

Don't allow update_into to mutate immutable objects#8230

Merged
reaperhulk merged 1 commit intopyca:mainfrom
alex:dont-mutate-me-bro
Feb 7, 2023
Merged

Don't allow update_into to mutate immutable objects#8230
reaperhulk merged 1 commit intopyca:mainfrom
alex:dont-mutate-me-bro

Conversation

@alex
Copy link
Copy Markdown
Member

@alex alex commented Feb 7, 2023

No description provided.

@reaperhulk reaperhulk enabled auto-merge (squash) February 7, 2023 16:25
@reaperhulk reaperhulk merged commit 9fbf84e into pyca:main Feb 7, 2023
@alex alex deleted the dont-mutate-me-bro branch February 7, 2023 16:35
reaperhulk pushed a commit to reaperhulk/cryptography that referenced this pull request Feb 7, 2023
alex added a commit that referenced this pull request Feb 7, 2023
* Don't allow update_into to mutate immutable objects (#8230)

* add changelog for 39.0.1

* oops

* bump versions

* remove circle

---------

Co-authored-by: Alex Gaynor <[email protected]>
@alittlesir
Copy link
Copy Markdown

Does this involve interface changes?

@reaperhulk
Copy link
Copy Markdown
Member

It behaves exactly the same unless you were passing an immutable type (e.g. a byte string). So the interface has technically changed but in practice it has only changed for the vulnerable path.

@alittlesir
Copy link
Copy Markdown

In this case, change the buf class type from bytes to bytearray. it is OK?

it can't use the bytes type anymore.

def update_into(self, data: bytes, buf: bytes) -> int:

@alittlesir
Copy link
Copy Markdown

I'm not sure what the effect of this vulnerability is.

@reaperhulk
Copy link
Copy Markdown
Member

Unfortunately the Python type hint system doesn’t have a way to represent “all objects that implement the buffer protocol but only the mutable types”, so bytes is still the closest to “correct” type that we can declare.

@alittlesir
Copy link
Copy Markdown

What is the impact of this cve? I don't seem to feel the threat of this vulnerability.

icanhasmath added a commit to ActiveState/cryptography that referenced this pull request Jan 18, 2024
Don't allow update_into to mutate immutable objects pyca#8230
pyca#8230
icanhasmath added a commit to ActiveState/cryptography that referenced this pull request Jan 18, 2024
Don't allow update_into to mutate immutable objects pyca#8230
pyca#8230
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants