{"id":"GHSA-g7vp-3rxx-v25r","kind":"vulnerability","aliases":["GHSA-g7vp-3rxx-v25r"],"related":[],"title":"CVE-2026-92943 - Improper validation of certificate with host mismatch in AWS IoT Device SDK for Python","description":"CVE-2026-92943 - Improper validation of certificate with host mismatch in AWS IoT Device SDK for Python\n\n### CVE-2026-92943 - Improper validation of certificate with host mismatch in AWS IoT Device SDK for Python\n\nBulletin ID: 2026-114-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 09/17/2026 12:00 PM PDT\n\nDescription:\n\nAWS IoT Device SDK for Python (AWSIoTPythonSDK) is an open source SDK that lets IoT devices and gateways connect to AWS IoT Core over MQTT. We identified CVE-2026-92943 in the MQTT client TLS connection layer, where the client did not validate that the server certificate matched the AWS IoT Core endpoint hostname. On Python 3.7 and later, an adversary-in-the-middle positioned on the network could present a certificate issued for an unrelated hostname by any certificate authority in the device trust store, impersonate the AWS IoT Core endpoint, read device telemetry, and inject arbitrary MQTT messages that the device processes as authentic. Both SDK default connection paths were affected: X.509 mutual authentication on port 8883 and WebSocket with SigV4 on port 443. The port 443 ALPN path was not affected.\n\nImpacted versions: >=1.5.3 AND <=1.6.0 (on Python 3.7 and later)\n\nResolution:\n\nThis issue has been addressed in AWSIoTPythonSDK version 1.6.1. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.\n\nWorkarounds:\n\nThere is no workaround. The affected connection paths are the SDK's documented defaults. Customers must upgrade to version 1.6.1.\n\nReferences:\n\n- CVE-2026-92943\n- GHSA-g7vp-3rxx-v25r\n\nAcknowledgement:\n\nWe would like to thank George Chen 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":"The AWS IoT Device SDK for Python did not verify that the server certificate matched the AWS IoT Core hostname in its MQTT TLS connection. An attacker positioned on the network can present a certificate for another hostname signed by any trusted CA, read device telemetry and inject MQTT messages the device treats as genuine.","severity":"high","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["aws","aws-iot","aws-iot-device-sdk","embedded","iot","lab-disclosure","package","python"],"not_affected_if":["port-443-alpn-path","sdk-version-outside-range"],"how_to_check":"- Check the installed version with `pip show AWSIoTPythonSDK` and confirm whether it falls in `>=1.5.3` and `<=1.6.0` on Python 3.7 or later.\n- Find the SDK in requirements files, lockfiles and forked or vendored copies of the code.","fix":"- Upgrade AWSIoTPythonSDK to `1.6.1` or later.\n- Patch any forked or derivative copies of the SDK with the same fix.\n- No workaround exists according to the bulletin.","status":"open","published_at":"2026-09-17T00:00:00+00:00","first_seen_at":"2026-10-24T19:43:42+00:00","triaged_at":"2026-10-25T05:30:26+00:00","updated_at":"2026-10-25T05:30:26+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-25T05:30:26Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade AWSIoTPythonSDK to `1.6.1` or later.\n- Patch any forked or derivative copies of the SDK with the same fix.\n- No workaround exists according to the bulletin.","reach":"network","title":"AWS IoT Device SDK for Python: missing hostname check lets attackers impersonate endpoint","impact":"high","summary":"The AWS IoT Device SDK for Python did not verify that the server certificate matched the AWS IoT Core hostname in its MQTT TLS connection. An attacker positioned on the network can present a certificate for another hostname signed by any trusted CA, read device telemetry and inject MQTT messages the device treats as genuine.","category":"package","nicknames":[],"who_cares":["aws-iot","python","iot","embedded","aws-iot-device-sdk"],"confidence":0.8,"needs_auth":"no","worst_case":"Attacker impersonates AWS IoT endpoint, reads telemetry, injects trusted MQTT messages","analyst_note":"","how_to_check":"- Check the installed version with `pip show AWSIoTPythonSDK` and confirm whether it falls in `>=1.5.3` and `<=1.6.0` on Python 3.7 or later.\n- Find the SDK in requirements files, lockfiles and forked or vendored copies of the code.","needs_analyst":false,"not_affected_if":["sdk-version-outside-range","port-443-alpn-path"],"who_is_affected":"Devices and gateways using the SDK's default MQTT connection paths are exposed: X.509 mutual authentication on port 8883 and WebSocket with SigV4 on port 443 (the ALPN path on 443 was not affected). The risk is an on-path attacker on the device's network, so devices on shared or untrusted networks matter most.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.00073,"input_tokens":4005,"output_tokens":658,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-114':136C '-2026':2A,100C,117C,181C,352C '-92943':3A,101C,118C,182C,353C '00':149C '09/17/2026':147C '1.5.3':290C '1.6.0':292C '1.6.1':307C,349C '12':148C '2026':135C '3.7':209C,295C '3rxx':21A,26A,357C '443':279C,282C '8883':272C 'acknowledg':359C 'address':303C 'adversari':214C 'adversary-in-the-middl':213C 'affect':266C,287C,335C 'alpn':283C 'anoth':80B 'arbitrari':251C 'attack':70B 'attent':144C 'authent':259C,269C 'author':234C 'aw':12A,28B,30B,33B,45B,60B,110C,127C,137C,139C,153C,173C,202C,242C 'aws-iot':29B 'aws-iot-device-sdk':32B 'aws-security@amazon.com':380C 'awsiotpythonsdk':159C,305C 'bulletin':133C 'ca':86B 'certif':7A,57B,78B,105C,122C,199C,225C,233C 'chen':366C 'client':186C,192C 'code':321C 'collabor':368C 'concern':386C 'connect':68B,171C,188C,263C,336C 'content':140C 'coordin':374C 'core':62B,175C,204C,244C 'could':222C 'custom':344C 'cve':1A,99C,116C,180C,351C 'date':146C 'default':262C,343C 'deriv':320C 'descript':152C 'devic':14A,35B,47B,88B,95B,112C,129C,155C,168C,237C,247C,256C 'disclosur':41B,376C 'document':342C 'email':379C 'embed':37B 'endpoint':205C,245C 'ensur':316C 'fix':328C 'fork':318C 'g7vp':20A,25A,356C 'gateway':170C 'genuin':98B 'georg':365C 'ghsa':19A,24A,355C 'ghsa-g7vp-3rxx-v25r':18A,23A,354C 'host':9A,107C,124C 'hostnam':63B,81B,206C,230C 'id':134C 'identifi':179C 'impact':288C 'imperson':240C 'import':142C 'improp':4A,102C,119C 'incorpor':325C 'inject':91B,250C 'iot':13A,31B,34B,38B,46B,61B,111C,128C,154C,167C,174C,203C,243C 'issu':226C,300C,371C 'lab':40B 'lab-disclosur':39B 'later':211C,297C 'latest':313C 'layer':189C 'let':166C 'like':362C 'match':58B,200C 'messag':93B,253C 'middl':217C 'mismatch':10A,108C,125C 'mqtt':66B,92B,177C,185C,252C 'must':345C 'mutual':268C 'network':74B,221C 'new':327C 'open':162C 'packag':42B 'patch':323C 'path':264C,284C,337C 'pdt':151C 'pleas':378C 'pm':150C 'port':271C,278C,281C 'posit':71B,218C 'present':76B,223C 'process':257C,377C 'public':145C 'python':17A,43B,50B,115C,132C,158C,208C,294C 'question':384C 'read':87B,246C 'recommend':309C 'refer':350C 'requir':143C 'resolut':298C 'scope':138C 'sdk':15A,36B,48B,113C,130C,156C,164C,261C,340C 'secur':383C 'server':56B,198C 'sign':82B 'sigv4':276C 'sourc':163C 'store':239C 'telemetri':89B,248C 'thank':364C 'tls':67B,187C 'treat':96B 'trust':85B,238C 'type':141C 'unrel':229C 'upgrad':310C,346C 'v25r':22A,27A,358C 'valid':5A,103C,120C,195C 'verifi':53B 'version':289C,306C,314C,348C 'vulner':375C 'websocket':274C 'workaround':329C,333C 'would':361C 'x.509':267C","nicknames":[],"mitigations":[],"who_affected":"Devices and gateways using the SDK's default MQTT connection paths are exposed: X.509 mutual authentication on port 8883 and WebSocket with SigV4 on port 443 (the ALPN path on 443 was not affected). The risk is an on-path attacker on the device's network, so devices on shared or untrusted networks matter most.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-09-17T00:00:00+00:00","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-114-aws/#GHSA-g7vp-3rxx-v25r","url":"https://aws.amazon.com/security/security-bulletins/rss/2026-114-aws/","severity":null,"published_at":"2026-09-17T00:00:00+00:00","modified_at":null,"first_seen_at":"2026-10-24T19:43:42+00:00","fetched_at":"2026-10-24T19:43:42+00:00","note":"AWS: CVE-2026-92943 - Improper validation of certificate with host mismatch in AWS IoT Device SDK for Python"}],"documents":[{"id":2957,"url":"https://aws.amazon.com/security/security-bulletins/rss/2026-114-aws/","title":"AWS: CVE-2026-92943 - Improper validation of certificate with host mismatch in AWS IoT Device SDK for Python","kind":"advisory","source":"lab","text":"CVE-2026-92943 - Improper validation of certificate with host mismatch in AWS IoT Device SDK for Python\n\n### CVE-2026-92943 - Improper validation of certificate with host mismatch in AWS IoT Device SDK for Python\n\nBulletin ID: 2026-114-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 09/17/2026 12:00 PM PDT\n\nDescription:\n\nAWS IoT Device SDK for Python (AWSIoTPythonSDK) is an open source SDK that lets IoT devices and gateways connect to AWS IoT Core over MQTT. We identified CVE-2026-92943 in the MQTT client TLS connection layer, where the client did not validate that the server certificate matched the AWS IoT Core endpoint hostname. On Python 3.7 and later, an adversary-in-the-middle positioned on the network could present a certificate issued for an unrelated hostname by any certificate authority in the device trust store, impersonate the AWS IoT Core endpoint, read device telemetry, and inject arbitrary MQTT messages that the device processes as authentic. Both SDK default connection paths were affected: X.509 mutual authentication on port 8883 and WebSocket with SigV4 on port 443. The port 443 ALPN path was not affected.\n\nImpacted versions: >=1.5.3 AND <=1.6.0 (on Python 3.7 and later)\n\nResolution:\n\nThis issue has been addressed in AWSIoTPythonSDK version 1.6.1. We recommend upgrading to the latest version and ensuring any forked or derivative code is patched to incorporate the new fixes.\n\nWorkarounds:\n\nThere is no workaround. The affected connection paths are the SDK's documented defaults. Customers must upgrade to version 1.6.1.\n\nReferences:\n\n- CVE-2026-92943\n- GHSA-g7vp-3rxx-v25r\n\nAcknowledgement:\n\nWe would like to thank George Chen 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":"2026-09-17T00:00:00+00:00","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"}