Skip to content

crash in PyTuple_GET_SIZE: Assertion `PyTuple_Check(op)' failed #138479

@15r10nk

Description

@15r10nk

Crash report

What happened?

The following code causes a crash in cpython:

class Generic:

    def __call__(*a):
        print(a)

    def __getattr__(self, name):
        return Generic()

name_5 = Generic()
type name_3[*name_2] = 0
name_3[name_5][0]

output:

(<__main__.Generic object at 0x7fb99dc5a280>, name_3[<__main__.Generic object at 0x7fb99d792420>], (0,))
(<__main__.Generic object at 0x7fb99dbd7960>, None)
python3: ./Include/cpython/tupleobject.h:24: PyTuple_GET_SIZE: Assertion `PyTuple_Check(op)' failed.
fish: Job 1, '../cpython/install/bin/python3 …' terminated by signal SIGABRT (Abbruch)

I found this example while fuzzing with pysource-codegen.

CPython versions tested on:

3.12, 3.13, 3.14, 3.15

Operating systems tested on:

Linux

Output from running 'python -VV' on the command line:

Python 3.14.0rc2+ (heads/3.14:45a79b4f4b7, Sep 3 2025, 22:05:34) [GCC 12.2.0]

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.13bugs and security fixes3.14bugs and security fixes3.15new features, bugs and security fixesinterpreter-core(Objects, Python, Grammar, and Parser dirs)type-crashA hard crash of the interpreter, possibly with a core dump

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions