{"id":"GHSA-93q6-f8hx-vv7f","kind":"vulnerability","aliases":["GHSA-93q6-f8hx-vv7f"],"related":[],"title":"CVE-2026-104020 - Uncontrolled recursion in the Ion reader in Amazon Ion Python","description":"CVE-2026-104020 - Uncontrolled recursion in the Ion reader in Amazon Ion Python\n\n### CVE-2026-104020 - Uncontrolled recursion in the Ion reader in Amazon Ion Python\n\nBulletin ID: 2026-122-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 10/01/2026 13:30 PM PDT\n\nDescription:\n\nAmazon Ion Python is an open-source Python implementation of the Amazon Ion data notation. We identified CVE-2026-104020, an issue in the Ion reader in Amazon Ion Python before version 0.15.0 where a crafted, deeply nested Ion value could cause the application to raise an error or crash, resulting in a denial of service.\n\nImpacted versions: < 0.15.0\n\nResolution:\n\nThis issue has been addressed in Amazon Ion Python version 0.15.0. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.\n\nWorkarounds:\n\nDisable ion-python's C extension (simpleion.c_ext = False) and explicitly handle RecursionError raised from within the simpleion module.\n\nReferences:\n\n- CVE-2026-104020\n- GHSA-93q6-f8hx-vv7f\n\nAcknowledgement:\n\nWe would like to thank Weiqi Wang and Lucas C. Cordeiro, University of Manchester, for collaborating on this issue through the coordinated vulnerability disclosure process.\n\n Please email aws-security@amazon.com with any security questions or concerns..","summary":"Amazon Ion Python before 0.15.0 has an uncontrolled recursion flaw in its Ion reader. A crafted, deeply nested Ion value makes the application raise an error or crash.","severity":"medium","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["amazon-ion","aws","ion-python","lab-disclosure","package","python"],"not_affected_if":["no-untrusted-ion-input","version-0.15.0-or-later"],"how_to_check":"- Check the installed version with `pip show amazon-ion` (or `pip show ion-python`) and compare it to `0.15.0`.\n- Check whether the application parses untrusted Ion input with the simpleion reader.","fix":"- Upgrade Amazon Ion Python to `0.15.0` or later.\n- Ensure any forked or vendored copy of the code includes the fix.\n- Workaround if upgrading is not possible: set `simpleion.c_ext = False` and handle `RecursionError` raised from the simpleion module.","status":"open","published_at":null,"first_seen_at":"2026-10-24T20:05:35+00:00","triaged_at":"2026-10-25T04:50:12+00:00","updated_at":"2026-10-25T04:50:12+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T04:50:12Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Amazon Ion Python to `0.15.0` or later.\n- Ensure any forked or vendored copy of the code includes the fix.\n- Workaround if upgrading is not possible: set `simpleion.c_ext = False` and handle `RecursionError` raised from the simpleion module.","reach":"unknown","title":"Amazon Ion Python: deeply nested Ion data crashes the reader, denial of service","impact":"low","summary":"Amazon Ion Python before 0.15.0 has an uncontrolled recursion flaw in its Ion reader. A crafted, deeply nested Ion value makes the application raise an error or crash.","category":"package","nicknames":[],"who_cares":["python","amazon-ion","ion-python"],"confidence":0.7,"needs_auth":"unknown","worst_case":"Application crashes or raises an error, causing denial of service.","analyst_note":"","how_to_check":"- Check the installed version with `pip show amazon-ion` (or `pip show ion-python`) and compare it to `0.15.0`.\n- Check whether the application parses untrusted Ion input with the simpleion reader.","needs_analyst":false,"not_affected_if":["version-0.15.0-or-later","no-untrusted-ion-input"],"who_is_affected":"Applications that use Amazon Ion Python before 0.15.0 to read Ion data, especially data from untrusted sources, are exposed. The crash is triggered by the content of the input value, so the risk depends on whether the application parses outside input. Teams not using Ion Python, or already on 0.15.0 or later, can skip it.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000678,"input_tokens":3815,"output_tokens":593,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-104020':3A,66C,79C,130C,226C '-122':93C '-2026':2A,65C,78C,129C,225C '..':267C '0.15.0':40B,143C,169C,181C '10/01/2026':104C '13':105C '2026':92C '30':106C '93q6':16A,21A,229C 'acknowledg':232C 'address':175C 'amazon':11A,25B,36B,74C,87C,110C,122C,138C,177C 'amazon-ion':24B 'applic':58B,154C 'attent':101C 'aw':27B,94C,96C 'aws-security@amazon.com':260C 'bulletin':90C 'c':209C,242C 'caus':152C 'code':195C 'collabor':248C 'concern':266C 'content':97C 'coordin':254C 'cordeiro':243C 'could':151C 'craft':51B,146C 'crash':63B,160C 'cve':1A,64C,77C,128C,224C 'data':124C 'date':103C 'deepli':52B,147C 'denial':164C 'deriv':194C 'descript':109C 'disabl':204C 'disclosur':33B,256C 'email':259C 'ensur':190C 'error':61B,158C 'explicit':214C 'extens':210C 'f8hx':17A,22A,230C 'fals':212C 'fix':202C 'flaw':45B 'fork':192C 'ghsa':15A,20A,228C 'ghsa-93q6-f8hx-vv7f':14A,19A,227C 'handl':215C 'id':91C 'identifi':127C 'impact':167C 'implement':119C 'import':99C 'incorpor':199C 'ion':8A,12A,26B,29B,37B,48B,54B,71C,75C,84C,88C,111C,123C,135C,139C,149C,178C,206C 'ion-python':28B,205C 'issu':132C,172C,251C 'lab':32B 'lab-disclosur':31B 'latest':187C 'like':235C 'luca':241C 'make':56B 'manchest':246C 'modul':222C 'nest':53B,148C 'new':201C 'notat':125C 'open':116C 'open-sourc':115C 'packag':34B 'patch':197C 'pdt':108C 'pleas':258C 'pm':107C 'process':257C 'public':102C 'python':13A,30B,35B,38B,76C,89C,112C,118C,140C,179C,207C 'question':264C 'rais':59B,156C,217C 'reader':9A,49B,72C,85C,136C 'recommend':183C 'recurs':5A,44B,68C,81C 'recursionerror':216C 'refer':223C 'requir':100C 'resolut':170C 'result':161C 'scope':95C 'secur':263C 'servic':166C 'simpleion':221C 'simpleion.c_ext':211C 'sourc':117C 'thank':237C 'type':98C 'uncontrol':4A,43B,67C,80C 'univers':244C 'upgrad':184C 'valu':55B,150C 'version':142C,168C,180C,188C 'vulner':255C 'vv7f':18A,23A,231C 'wang':239C 'weiqi':238C 'within':219C 'workaround':203C 'would':234C","nicknames":[],"mitigations":[{"kind":"workaround","scope":"Amazon Ion Python (ion-python before 0.15.0)","since":null,"covers":"Deeply nested Ion values parsed by the simpleion module, by disabling the C extension and handling RecursionError raised from simpleion","limits":"none stated","source":"https://aws.amazon.com/security/security-bulletins/rss/2026-122-aws/","vendor":"Team","seen_at":"2026-10-24T21:50:52Z","confidence":0.9,"source_title":"CVE-2026-104020 - Uncontrolled recursion in the Ion reader in Amazon Ion Python","customer_action":"Set simpleion.c_ext = False and explicitly handle RecursionError raised from within the simpleion module; upgrade to 0.15.0 for the fix"}],"who_affected":"Applications that use Amazon Ion Python before 0.15.0 to read Ion data, especially data from untrusted sources, are exposed. The crash is triggered by the content of the input value, so the risk depends on whether the application parses outside input. Teams not using Ion Python, or already on 0.15.0 or later, can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":null,"kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"lab","external_id":"https://aws.amazon.com/security/security-bulletins/rss/2026-122-aws/#GHSA-93q6-f8hx-vv7f","url":"https://aws.amazon.com/security/security-bulletins/rss/2026-122-aws/","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T20:05:35+00:00","fetched_at":"2026-10-24T21:51:20+00:00","note":"AWS: CVE-2026-104020 - Uncontrolled recursion in the Ion reader in Amazon Ion Python"}],"documents":[{"id":2969,"url":"https://aws.amazon.com/security/security-bulletins/rss/2026-122-aws/","title":"AWS: CVE-2026-104020 - Uncontrolled recursion in the Ion reader in Amazon Ion Python","kind":"advisory","source":"lab","text":"CVE-2026-104020 - Uncontrolled recursion in the Ion reader in Amazon Ion Python\n\n### CVE-2026-104020 - Uncontrolled recursion in the Ion reader in Amazon Ion Python\n\nBulletin ID: 2026-122-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 10/01/2026 13:30 PM PDT\n\nDescription:\n\nAmazon Ion Python is an open-source Python implementation of the Amazon Ion data notation. We identified CVE-2026-104020, an issue in the Ion reader in Amazon Ion Python before version 0.15.0 where a crafted, deeply nested Ion value could cause the application to raise an error or crash, resulting in a denial of service.\n\nImpacted versions: < 0.15.0\n\nResolution:\n\nThis issue has been addressed in Amazon Ion Python version 0.15.0. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.\n\nWorkarounds:\n\nDisable ion-python's C extension (simpleion.c_ext = False) and explicitly handle RecursionError raised from within the simpleion module.\n\nReferences:\n\n- CVE-2026-104020\n- GHSA-93q6-f8hx-vv7f\n\nAcknowledgement:\n\nWe would like to thank Weiqi Wang and Lucas C. Cordeiro, University of Manchester, for collaborating on this issue through the coordinated vulnerability disclosure process.\n\n Please email aws-security@amazon.com with any security questions or concerns..","published_at":null,"relation":"advisory","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}