GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — gh-153689: Fix integer overflows in `PyObject_CopyData` by imabd645 · Pull Request #153690 · python/cpython

Conversation

@imabd645

@imabd645 imabd645 commented Jul 14, 2026 •
edited by bedevere-app Bot
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
  • Fixes Potential integer overflows in Objects/abstract.c buffer copy APIs #153689

Summary

This PR addresses two integer overflow vulnerabilities explicitly marked by developers with XXX(nnorwitz) in Objects/abstract.c, specifically within PyObject_CopyData when handling the Buffer API.

If a multi-dimensional buffer object is provided with artificially large dimensions or shape array entries, it could wrap around integer variables leading to heap memory corruption or incomplete copy logic.

Changes made

  1. Prevent allocation overflow: Added a check to ensure view_src.ndim is within PyBUF_MAX_NDIM before attempting memory allocation for indices, guaranteeing sizeof(Py_ssize_t) * ndim will never integer-overflow.
  2. Prevent element count overflow: Added an overflow check within the element counting loop (elements > PY_SSIZE_T_MAX / view_src.shape[k]) that returns a standard BufferError instead of overflowing the Py_ssize_t counter.

The appropriate blurb entry for Misc/NEWS.d has been generated and included in this commit.

  • Issue: Potential integer overflows in Objects/abstract.c buffer copy APIs #153689

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@bedevere-app

bedevere-app Bot commented Jul 14, 2026

Copy link
Copy Markdown

Most changes to Python require a NEWS entry. Add one using the blurb_it web app or the blurb command-line tool.

If this change has little impact on Python users, wait for a maintainer to apply the skip news label instead.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@python-cla-bot

python-cla-bot Bot commented Jul 14, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

All commit authors signed the Contributor License Agreement.

CLA signed

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@bedevere-app bedevere-app Bot mentioned this pull request Jul 14, 2026
Potential integer overflows in Objects/abstract.c buffer copy APIs #153689
Open
@bedevere-app bedevere-app Bot added the awaiting review label Jul 14, 2026
@imabd645
Fix integer overflows in PyObject_CopyData buffer API
07bd45d
@imabd645
imabd645 force-pushed the fix-buffer-overflows branch from c5f47dd to 07bd45d Compare July 14, 2026 08:08
@picnixz picnixz changed the title gh-153689: Fix integer overflow vulnerabilities in PyObject_CopyData gh-153689: Fix integer overflows in PyObject_CopyData Jul 14, 2026
@imabd645
Merge branch 'main' into fix-buffer-overflows
470293d
@imabd645
imabd645 marked this pull request as draft August 18, 2026 16:46
@bedevere-app bedevere-app Bot removed the awaiting review label Aug 18, 2026
@imabd645
imabd645 marked this pull request as ready for review August 18, 2026 16:47
@bedevere-app bedevere-app Bot added the awaiting review label Aug 18, 2026
@Davien21 Davien21 mentioned this pull request Oct 26, 2026
Add C API tests for PyObject_CopyData and PyBuffer_FillContiguousStrides #160688
Open
@encukou

encukou commented Nov 4, 2026

Copy link
Copy Markdown
Member

Thanks. Can you add a test that fails without this change?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

awaiting review

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Potential integer overflows in Objects/abstract.c buffer copy APIs

Uh oh!

There was an error while loading. Please reload this page.

2 participants

@imabd645 @encukou
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.