The "profiling.sampling" module (Python 3.15+) and "asyncio introspection capabilities" (3.14+, "python -m asyncio ps" and "python -m asyncio pstree") features could be used to read and write addresses in a privileged process if that process connected to a malicious or "infected" Python process via the remote debugging feature. This vulnerability requires persistently and repeatedly connecting to the process to be exploited, even after the connecting process crashes with high likelihood due to ASLR.
{
"cwe_ids": []
}[
{
"source": "https://github.com/python/cpython/commit/289fd2c97a7e5aecb8b69f94f5e838ccfeee7e67",
"target": {
"function": "read_async_debug",
"file": "Modules/_remote_debugging/asyncio.c"
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Function",
"digest": {
"length": 427.0,
"function_hash": "245981505972492190890653013322972258791"
},
"id": "PSF-2026-19-675f38c1"
},
{
"digest": {
"length": 3203.0,
"function_hash": "336267078754507233895692800265045832709"
},
"id": "PSF-2026-19-69ac6341",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/python/cpython/commit/289fd2c97a7e5aecb8b69f94f5e838ccfeee7e67",
"target": {
"function": "_remote_debugging_RemoteUnwinder___init___impl",
"file": "Modules/_remote_debugging/module.c"
}
},
{
"source": "https://github.com/python/cpython/commit/289fd2c97a7e5aecb8b69f94f5e838ccfeee7e67",
"id": "PSF-2026-19-73e6f6cc",
"signature_version": "v1",
"target": {
"function": "find_frame_in_chunks",
"file": "Modules/_remote_debugging/frames.c"
},
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 533.0,
"function_hash": "42568520184731819157788302753139868446"
}
},
{
"digest": {
"length": 420.0,
"function_hash": "220648592042851214713592688769696726902"
},
"id": "PSF-2026-19-8b4535f2",
"signature_version": "v1",
"source": "https://github.com/python/cpython/commit/289fd2c97a7e5aecb8b69f94f5e838ccfeee7e67",
"signature_type": "Function",
"target": {
"function": "ensure_async_debug_offsets",
"file": "Modules/_remote_debugging/asyncio.c"
},
"deprecated": false
},
{
"source": "https://github.com/python/cpython/commit/289fd2c97a7e5aecb8b69f94f5e838ccfeee7e67",
"id": "PSF-2026-19-8f2374a5",
"signature_version": "v1",
"target": {
"file": "Modules/_remote_debugging/asyncio.c"
},
"signature_type": "Line",
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"149590914155636874669696007226452197698",
"260225886543147551484568093290489680913",
"10890973065704760779058565016116937372",
"157876391673519883231775916615012091535",
"95468143904920739101499679098612306899",
"31381927340001534216061549329048069732",
"114697188066321940155513418539802957569",
"297758372313771915193870983901370545217",
"16243910240824376198842730507195351206",
"214992813336529931958126309895145929143",
"277420593219157965054539149479059606812"
]
}
},
{
"digest": {
"length": 1522.0,
"function_hash": "140914305182492835418233589173880173566"
},
"id": "PSF-2026-19-8f79bd88",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"source": "https://github.com/python/cpython/commit/289fd2c97a7e5aecb8b69f94f5e838ccfeee7e67",
"target": {
"function": "validate_debug_offsets",
"file": "Modules/_remote_debugging/module.c"
}
},
{
"source": "https://github.com/python/cpython/commit/289fd2c97a7e5aecb8b69f94f5e838ccfeee7e67",
"target": {
"file": "Modules/_remote_debugging/frames.c"
},
"deprecated": false,
"digest": {
"threshold": 0.9,
"line_hashes": [
"202669564105719786428683120521353116508",
"243136757518700513353262613171805775750",
"285708693124834684150283698736145713616",
"82154586460391812451986551836703406410"
]
},
"signature_type": "Line",
"id": "PSF-2026-19-995742ee",
"signature_version": "v1"
},
{
"source": "https://github.com/python/cpython/commit/289fd2c97a7e5aecb8b69f94f5e838ccfeee7e67",
"target": {
"file": "Modules/_remote_debugging/module.c"
},
"signature_version": "v1",
"deprecated": false,
"signature_type": "Line",
"id": "PSF-2026-19-f3fdb1bb",
"digest": {
"threshold": 0.9,
"line_hashes": [
"183284707183075176221906497311761896164",
"128400124836604653930790894248897557804",
"254097505792159030800901135630839785883",
"297295444819886776360825326696600298970",
"40871188566960555797534865343993917120",
"139960504989181189296839754167187329900",
"193915943557584955820597461367109601366",
"324977655739534484680364669447929522755",
"172875994508637988581630580447631477338",
"268177398782905625784657497019566427652"
]
}
},
{
"digest": {
"threshold": 0.9,
"line_hashes": [
"298223400776913315262921146786735091506",
"222999565188564283060666387866510370610",
"102785165037480089344419425717698065139",
"244193805291779794716975476202033032583",
"20565281032612973554945880527344290634",
"194685666717727536801597506645175765752",
"50166351641283881063593890755576094205"
]
},
"target": {
"file": "Modules/_remote_debugging/_remote_debugging.h"
},
"deprecated": false,
"id": "PSF-2026-19-f8ff6759",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/python/cpython/commit/289fd2c97a7e5aecb8b69f94f5e838ccfeee7e67"
}
]
"https://github.com/psf/advisory-database/blob/main/advisories/python/PSF-2026-19.json"
"2026-04-15T02:03:58Z"