GHSA-36hh-v3qg-5jq4 Out-of-bounds read in `nth` / `nth_back` for `PyList` and `PyTuple` iterators

Not scored Published

Integer overflow in PyO3 iterators allows out-of-bounds memory reads, potentially exposing sensitive data or causing crashes.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Not stated
Victim action needed
Not needed
Fix
Available

What is GHSA-36hh-v3qg-5jq4?

GHSA-36hh-v3qg-5jq4 is a vulnerability in pyo3, published on 11 Jun 2026.

Official description

PyO3 0.24.0 added optimized implementations of Iterator::nth and DoubleEndedIterator::nth_back for the BoundListIterator and BoundTupleIterator types. These implementations computed the target index using unchecked usize addition (index + n) before bounds-checking against the sequence length, then read the element via get_item_unchecked.

In nth methods, a sufficiently large n (combined with a non-zero internal index) could cause the addition to overflow and wrap around, producing a small "target index" that passed the bounds check and enabling reads at the front of the list or tuple of elements previously yielded by the iterator.

In nth_back methods, a sufficiently large n could cause underflow in a similar fashion, however would instead allow reads of arbitrary memory past the end of the list or tuple storage.

PyO3 0.29.0 has corrected these methods to use checked arithmetic at the positions which could be at risk of overflow.

Which versions are affected by GHSA-36hh-v3qg-5jq4?

3 open source packages ship an affected version, including pyo3.

PackageAffectedFixed in
pyo3 crates.ioAll versions0.29.0
pyo3 crates.ioAll versions0.29.0
pyo3 crates.ioFrom 0.24.00.29.0

How do I fix GHSA-36hh-v3qg-5jq4?

Upgrade pyo3 to 0.29.0 or later.

Is GHSA-36hh-v3qg-5jq4 being exploited?

There is no known exploitation of GHSA-36hh-v3qg-5jq4 in the wild and no public exploit code.

Sources

Also known as RUSTSEC-2026-0176.

Is GHSA-36hh-v3qg-5jq4 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free