The vulnerability is a buffer overflow in the Rust backend of the cryptography library, which occurs when a non-contiguous buffer is passed to APIs that accept Python buffers. The advisory specifically mentions Hash.update() as an example of a vulnerable API.
The fixing commit, 622d672e429a7cff836a23c5903683dbec1901f5, addresses the root cause by modifying the internal Rust function _extract_buffer_length in src/rust/src/buf.rs. This function is used to process Python buffer objects. The patch introduces a check to ensure that any buffer passed is C-contiguous. If it's not, a BufferError is raised, preventing the overflow.
The commit also includes a new test, test_non_contiguous_buffer_rejected, which confirms that Hash.update() was a vector for this vulnerability. The test attempts to call Hash.update() with a non-contiguous memoryview, and with the patch, it correctly raises an exception.
Therefore, Hash.update is a key function that would appear in a runtime profile during exploitation. The underlying vulnerable code is in the _extract_buffer_length Rust function, which is called by Hash.update and likely other APIs within the library that handle buffers.