{"id":"GHSA-3rgm-255m-m9g5","kind":"vulnerability","aliases":["GHSA-3rgm-255m-m9g5"],"related":[],"title":"CVE-2026-127119 - Unverified ownership of the default EMR cluster log location in AWS SDK for pandas","description":"CVE-2026-127119 - Unverified ownership of the default EMR cluster log location in AWS SDK for pandas\n\n### CVE-2026-127119 - Unverified ownership of the default EMR cluster log location in AWS SDK for pandas\n\nBulletin ID: 2026-181-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 11/12/2026 10:45 PM PST Last Updated Date: 11/12/2026 12:15 PM PST\n\n Description:\n\nAWS SDK for pandas (awswrangler) is an open-source Python library that integrates pandas with AWS services, including Amazon EMR.\n\nWe identified CVE-2026-127119, an issue in the EMR module of AWS SDK for pandas (awswrangler) from version 1.1.0 before 3.18.0. When a cluster is created without an explicit log location, the library uses a predictable default S3 bucket name for the cluster logs without verifying that the caller's account owns that bucket. A remote actor who creates that bucket first could read the cluster's logs, including job step output. \n\nImpacted versions: >= 1.1.0 AND < 3.18.0\n\nResolution:\n\nThis issue has been addressed in awswrangler version 3.18.0. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes. Users who rely on the default log location should also make sure the caller has s3:ListBucket on the default log bucket, which version 3.18.0 requires to verify bucket ownership.\n\nWorkarounds:\n\nIf you cannot upgrade immediately, pass an explicit log location that points to a bucket you own when creating clusters with AWS SDK for pandas, or create the default EMR log bucket (aws-logs-{account}-{region}) in your own account in each region you use. If that bucket name is already taken by another account, treat it as untrusted and use an explicit log location.\n\nReferences:\n\n- CVE-2026-127119\n- GHSA-3rgm-255m-m9g5\n\nAcknowledgement:\n\nWe would like to thank Upwind Security 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":"When a cluster is created without an explicit log location, awswrangler writes logs to a predictable default S3 bucket without checking the caller owns it. A remote actor who creates that bucket first can read cluster logs, including job step output.","severity":"medium","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["aws","awswrangler","data-pipelines","emr","lab-disclosure","package","python"],"not_affected_if":["emr-module-unused","explicit-log-location","version-3.18.0-or-later"],"how_to_check":"- Check the installed version with `pip show awswrangler`, or look at the version pinned in your lock file.\n- Search your EMR cluster creation code for calls that do not pass an explicit log location (`log_uri`).\n- Confirm whether the default bucket `aws-logs-{account}-{region}` exists in your account in each region you use.","fix":"- Upgrade awswrangler to `3.18.0` or later (affected: `>= 1.1.0` and `< 3.18.0`).\n- Grant the caller `s3:ListBucket` on the default log bucket, which version 3.18.0 requires to verify ownership.\n- Until upgraded, pass an explicit log location pointing to a bucket you own.","status":"open","published_at":null,"first_seen_at":"2026-11-12T20:27:08+00:00","triaged_at":"2026-11-12T20:29:10+00:00","updated_at":"2026-11-12T20:29:10+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-12T20:29:10Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade awswrangler to `3.18.0` or later (affected: `>= 1.1.0` and `< 3.18.0`).\n- Grant the caller `s3:ListBucket` on the default log bucket, which version 3.18.0 requires to verify ownership.\n- Until upgraded, pass an explicit log location pointing to a bucket you own.","reach":"internet","title":"AWS SDK for pandas: unowned default EMR log bucket leaks cluster job output","impact":"medium","summary":"When a cluster is created without an explicit log location, awswrangler writes logs to a predictable default S3 bucket without checking the caller owns it. A remote actor who creates that bucket first can read cluster logs, including job step output.","audience":"developers","category":"package","nicknames":[],"who_cares":["aws","emr","python","awswrangler","data-pipelines"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"Cluster logs and job step output readable by an outside party","analyst_note":"","how_to_check":"- Check the installed version with `pip show awswrangler`, or look at the version pinned in your lock file.\n- Search your EMR cluster creation code for calls that do not pass an explicit log location (`log_uri`).\n- Confirm whether the default bucket `aws-logs-{account}-{region}` exists in your account in each region you use.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["explicit-log-location","emr-module-unused","version-3.18.0-or-later"],"who_is_affected":"Teams that use awswrangler to create Amazon EMR clusters without setting an explicit log location are exposed. Code that always passes its own log bucket, or does not use the EMR module, can skip it. The default bucket name is predictable, so an attacker who creates it first in an unclaimed account can receive the logs.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000865,"input_tokens":5261,"output_tokens":677,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-127119':3A,82C,99C,167C,372C '-181':117C '-2026':2A,81C,98C,166C,371C '1.1.0':182C,238C '10':129C '11/12/2026':128C,136C '12':137C '15':138C '2026':116C '255m':21A,26A,376C '3.18.0':184C,240C,250C,296C '3rgm':20A,25A,375C '45':130C 'account':214C,338C,343C,358C 'acknowledg':378C 'actor':66B,220C 'address':246C 'alreadi':354C 'also':281C 'amazon':161C 'anoth':357C 'attent':125C 'aw':14A,28B,93C,110C,118C,120C,142C,158C,175C,324C,336C 'aws-log':335C 'aws-security@amazon.com':399C 'awswrangl':29B,49B,146C,179C,248C 'bucket':57B,70B,202C,217C,224C,293C,300C,317C,334C,351C 'bulletin':114C 'caller':61B,212C,285C 'cannot':305C 'check':59B 'cluster':10A,41B,74B,89C,106C,187C,206C,229C,322C 'code':264C 'collabor':387C 'concern':405C 'content':121C 'coordin':393C 'could':226C 'creat':43B,68B,189C,222C,321C,329C 'cve':1A,80C,97C,165C,370C 'data':31B 'data-pipelin':30B 'date':127C,135C 'default':8A,55B,87C,104C,200C,277C,291C,331C 'deriv':263C 'descript':141C 'disclosur':36B,395C 'email':398C 'emr':9A,33B,88C,105C,162C,172C,332C 'ensur':259C 'explicit':46B,192C,310C,366C 'first':71B,225C 'fix':271C 'fork':261C 'ghsa':19A,24A,374C 'ghsa-3rgm-255m-m9g5':18A,23A,373C 'id':115C 'identifi':164C 'immedi':307C 'impact':236C 'import':123C 'includ':76B,160C,232C 'incorpor':268C 'integr':155C 'issu':169C,243C,390C 'job':77B,233C 'lab':35B 'lab-disclosur':34B 'last':133C 'latest':256C 'librari':153C,196C 'like':381C 'listbucket':288C 'locat':12A,48B,91C,108C,194C,279C,312C,368C 'log':11A,47B,51B,75B,90C,107C,193C,207C,231C,278C,292C,311C,333C,337C,367C 'm9g5':22A,27A,377C 'make':282C 'modul':173C 'name':203C,352C 'new':270C 'open':150C 'open-sourc':149C 'output':79B,235C 'own':62B,215C 'ownership':5A,84C,101C,301C 'packag':37B 'panda':17A,96C,113C,145C,156C,178C,327C 'pass':308C 'patch':266C 'pipelin':32B 'pleas':397C 'pm':131C,139C 'point':314C 'predict':54B,199C 'process':396C 'pst':132C,140C 'public':126C 'python':38B,152C 'question':403C 'read':73B,227C 'recommend':252C 'refer':369C 'region':339C,346C 'reli':274C 'remot':65B,219C 'requir':124C,297C 'resolut':241C 's3':56B,201C,287C 'scope':119C 'sdk':15A,94C,111C,143C,176C,325C 'secur':385C,402C 'servic':159C 'sourc':151C 'step':78B,234C 'sure':283C 'taken':355C 'thank':383C 'treat':359C 'type':122C 'untrust':362C 'unverifi':4A,83C,100C 'updat':134C 'upgrad':253C,306C 'upwind':384C 'use':197C,348C,364C 'user':272C 'verifi':209C,299C 'version':181C,237C,249C,257C,295C 'vulner':394C 'without':44B,58B,190C,208C 'workaround':302C 'would':380C 'write':50B","nicknames":[],"mitigations":[],"who_affected":"Teams that use awswrangler to create Amazon EMR clusters without setting an explicit log location are exposed. Code that always passes its own log bucket, or does not use the EMR module, can skip it. The default bucket name is predictable, so an attacker who creates it first in an unclaimed account can receive the logs.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["aws","awswrangler","datapipelines","emr","labdisclosure","medium","package","python"],"campaign_type":null,"search_a":"'-127119':3A '-2026':2A '255m':21A,26A '3rgm':20A,25A 'aw':14A 'cluster':10A 'cve':1A 'default':8A 'emr':9A 'ghsa':19A,24A 'ghsa-3rgm-255m-m9g5':18A,23A 'locat':12A 'log':11A 'm9g5':22A,27A 'ownership':5A 'panda':17A 'sdk':15A 'unverifi':4A","search_b":"'actor':66B 'aw':28B 'awswrangl':29B,49B 'bucket':57B,70B 'caller':61B 'check':59B 'cluster':41B,74B 'creat':43B,68B 'data':31B 'data-pipelin':30B 'default':55B 'disclosur':36B 'emr':33B 'explicit':46B 'first':71B 'includ':76B 'job':77B 'lab':35B 'lab-disclosur':34B 'locat':48B 'log':47B,51B,75B 'output':79B 'own':62B 'packag':37B 'pipelin':32B 'predict':54B 'python':38B 'read':73B 'remot':65B 's3':56B 'step':78B 'without':44B,58B 'write':50B","search_c":"'-127119':82C,99C,167C,372C '-181':117C '-2026':81C,98C,166C,371C '1.1.0':182C,238C '10':129C '11/12/2026':128C,136C '12':137C '15':138C '2026':116C '255m':376C '3.18.0':184C,240C,250C,296C '3rgm':375C '45':130C 'account':214C,338C,343C,358C 'acknowledg':378C 'actor':220C 'address':246C 'alreadi':354C 'also':281C 'amazon':161C 'anoth':357C 'attent':125C 'aw':93C,110C,118C,120C,142C,158C,175C,324C,336C 'aws-log':335C 'aws-security@amazon.com':399C 'awswrangl':146C,179C,248C 'bucket':202C,217C,224C,293C,300C,317C,334C,351C 'bulletin':114C 'caller':212C,285C 'cannot':305C 'cluster':89C,106C,187C,206C,229C,322C 'code':264C 'collabor':387C 'concern':405C 'content':121C 'coordin':393C 'could':226C 'creat':189C,222C,321C,329C 'cve':80C,97C,165C,370C 'date':127C,135C 'default':87C,104C,200C,277C,291C,331C 'deriv':263C 'descript':141C 'disclosur':395C 'email':398C 'emr':88C,105C,162C,172C,332C 'ensur':259C 'explicit':192C,310C,366C 'first':225C 'fix':271C 'fork':261C 'ghsa':374C 'ghsa-3rgm-255m-m9g5':373C 'id':115C 'identifi':164C 'immedi':307C 'impact':236C 'import':123C 'includ':160C,232C 'incorpor':268C 'integr':155C 'issu':169C,243C,390C 'job':233C 'last':133C 'latest':256C 'librari':153C,196C 'like':381C 'listbucket':288C 'locat':91C,108C,194C,279C,312C,368C 'log':90C,107C,193C,207C,231C,278C,292C,311C,333C,337C,367C 'm9g5':377C 'make':282C 'modul':173C 'name':203C,352C 'new':270C 'open':150C 'open-sourc':149C 'output':235C 'own':215C 'ownership':84C,101C,301C 'panda':96C,113C,145C,156C,178C,327C 'pass':308C 'patch':266C 'pleas':397C 'pm':131C,139C 'point':314C 'predict':199C 'process':396C 'pst':132C,140C 'public':126C 'python':152C 'question':403C 'read':227C 'recommend':252C 'refer':369C 'region':339C,346C 'reli':274C 'remot':219C 'requir':124C,297C 'resolut':241C 's3':201C,287C 'scope':119C 'sdk':94C,111C,143C,176C,325C 'secur':385C,402C 'servic':159C 'sourc':151C 'step':234C 'sure':283C 'taken':355C 'thank':383C 'treat':359C 'type':122C 'untrust':362C 'unverifi':83C,100C 'updat':134C 'upgrad':253C,306C 'upwind':384C 'use':197C,348C,364C 'user':272C 'verifi':209C,299C 'version':181C,237C,249C,257C,295C 'vulner':394C 'without':190C,208C 'workaround':302C 'would':380C","cause_entry":null,"cause_path":null,"disclosures_checked_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/2026-181-aws/#GHSA-3rgm-255m-m9g5","url":"https://aws.amazon.com/security/security-bulletins/2026-181-aws/","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-11-12T20:27:08+00:00","fetched_at":"2026-11-12T20:27:08+00:00","note":"AWS: CVE-2026-127119 - Unverified ownership of the default EMR cluster log location in AWS SDK for pandas"}],"documents":[{"id":137750,"url":"https://aws.amazon.com/security/security-bulletins/2026-181-aws/","title":"AWS: CVE-2026-127119 - Unverified ownership of the default EMR cluster log location in AWS SDK for pandas","kind":"advisory","source":"lab","publisher":"research","text":"CVE-2026-127119 - Unverified ownership of the default EMR cluster log location in AWS SDK for pandas\n\n### CVE-2026-127119 - Unverified ownership of the default EMR cluster log location in AWS SDK for pandas\n\nBulletin ID: 2026-181-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 11/12/2026 10:45 PM PST Last Updated Date: 11/12/2026 12:15 PM PST\n\n Description:\n\nAWS SDK for pandas (awswrangler) is an open-source Python library that integrates pandas with AWS services, including Amazon EMR.\n\nWe identified CVE-2026-127119, an issue in the EMR module of AWS SDK for pandas (awswrangler) from version 1.1.0 before 3.18.0. When a cluster is created without an explicit log location, the library uses a predictable default S3 bucket name for the cluster logs without verifying that the caller's account owns that bucket. A remote actor who creates that bucket first could read the cluster's logs, including job step output. \n\nImpacted versions: >= 1.1.0 AND < 3.18.0\n\nResolution:\n\nThis issue has been addressed in awswrangler version 3.18.0. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes. Users who rely on the default log location should also make sure the caller has s3:ListBucket on the default log bucket, which version 3.18.0 requires to verify bucket ownership.\n\nWorkarounds:\n\nIf you cannot upgrade immediately, pass an explicit log location that points to a bucket you own when creating clusters with AWS SDK for pandas, or create the default EMR log bucket (aws-logs-{account}-{region}) in your own account in each region you use. If that bucket name is already taken by another account, treat it as untrusted and use an explicit log location.\n\nReferences:\n\n- CVE-2026-127119\n- GHSA-3rgm-255m-m9g5\n\nAcknowledgement:\n\nWe would like to thank Upwind Security 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}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}