{"id":"CVE-2026-85788","kind":"vulnerability","aliases":["CVE-2026-85788"],"related":[],"title":"AWS mysql-mcp-server: SQL inline comments bypass read-only mode checks","description":"CVE-2026-85788 - Issue with awslabs mysql-mcp-server\n\n### CVE-2026-85788 - Issue with awslabs mysql-mcp-server\n\nBulletin ID: 2026-103-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 09/09/2026 09:15 PM PDT\n\nDescription:\n\nWe identified an issue in awslabs.mysql-mcp-server (an open-source, self-hosted Model Context Protocol server distributed via github.com/awslabs/mcp and PyPI). In affected versions, under certain conditions the read-only enforcement could be circumvented via SQL inline comments, allowing a statement to run that the read-only check was expected to block. The read-only mode provided by the server is a best-effort safeguard and is not a substitute for correctly scoped database permissions; the effective boundary is the permissions of the configured MySQL user.\n\nThis issue does not affect the confidentiality or integrity of any AWS service. awslabs.mysql-mcp-server is a client-side, self-managed package; customers control installation and the privileges of the database credentials they configure.\n\nAffected versions: awslabs.mysql-mcp-server ≤ 1.0.21\n\nResolution:\n\nThe issue is addressed in awslabs.mysql-mcp-server 1.0.23. We recommend customers upgrade to 1.0.23 or later:\n\n pip install --upgrade awslabs.mysql-mcp-server\n\nAs defense in depth, ensure the database user configured for the MCP server is granted only the minimum privileges required, and does not hold the FILE privilege unless explicitly needed.\n\nWorkarounds:\n\nNone.\n\nReferences:\n\n- CVE-2026-85788\n- GHSA-x25m-ph3m-3r9q\n\nAcknowledgement:\n\nWe would like to thank Jaeyoung Yun for reporting this issue and working with us as part of our coordinated disclosure process.\n\n Please email aws-security@amazon.com with any security questions or concerns.","summary":"The awslabs mysql-mcp-server, a self-hosted MCP server for MySQL, can have its read-only check circumvented using SQL inline comments. A statement the read-only check was meant to block can run against the database, within the privileges of the configured MySQL user.","severity":"medium","cvss":5.7,"epss":0.00184,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ai-tooling","aws","lab-disclosure","mcp","mysql","python","self-hosted"],"not_affected_if":["read-only-database-user","version-1.0.23-or-later"],"how_to_check":"- Run `pip show awslabs.mysql-mcp-server` and look at the Version line; affected versions are `1.0.21` and below.\n- Check the database user the MCP server connects with and confirm it lacks the FILE privilege and other unneeded grants.","fix":"- Upgrade the package: `pip install --upgrade awslabs.mysql-mcp-server` to `1.0.23` or later.\n- Grant the MCP server's MySQL user only the minimum privileges required, without the FILE privilege unless explicitly needed.","status":"open","published_at":"2026-09-09T00:00:00+00:00","first_seen_at":"2026-10-24T18:43:45+00:00","triaged_at":"2026-10-25T05:30:20+00:00","updated_at":"2026-10-25T12:38:49+00:00","category":"ai-tooling","confidence":0.7,"triage":{"at":"2026-10-25T05:30:20Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade the package: `pip install --upgrade awslabs.mysql-mcp-server` to `1.0.23` or later.\n- Grant the MCP server's MySQL user only the minimum privileges required, without the FILE privilege unless explicitly needed.","reach":"unknown","title":"AWS mysql-mcp-server: SQL inline comments bypass read-only mode checks","impact":"medium","summary":"The awslabs mysql-mcp-server, a self-hosted MCP server for MySQL, can have its read-only check circumvented using SQL inline comments. A statement the read-only check was meant to block can run against the database, within the privileges of the configured MySQL user.","category":"ai-tooling","nicknames":[],"who_cares":["mcp","mysql","python","self-hosted"],"confidence":0.7,"needs_auth":"unknown","worst_case":"Statements meant to be read-only run against MySQL with the configured user's privileges","analyst_note":"","how_to_check":"- Run `pip show awslabs.mysql-mcp-server` and look at the Version line; affected versions are `1.0.21` and below.\n- Check the database user the MCP server connects with and confirm it lacks the FILE privilege and other unneeded grants.","needs_analyst":false,"not_affected_if":["version-1.0.23-or-later","read-only-database-user"],"who_is_affected":"Teams running the self-hosted awslabs.mysql-mcp-server at version 1.0.21 or earlier, where the MCP server connects to MySQL with a user that can perform writes or other sensitive actions. AWS states the read-only mode is best-effort and the real boundary is the database user's permissions, so setups where that user is already tightly scoped carry less risk. Teams not using this package can skip it.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000721,"input_tokens":3967,"output_tokens":648,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-103':107C '-2026':16A,19A,85C,95C,325C '-85788':17A,20A,86C,96C,326C '/awslabs/mcp':148C '09':119C '09/09/2026':118C '1.0.21':264C '1.0.23':275C,281C '15':120C '2026':106C '3r9q':331C 'acknowledg':332C 'address':269C 'affect':152C,224C,258C 'ai':22B 'ai-tool':21B 'allow':169C 'attent':115C 'aw':1A,24B,108C,110C,231C 'aws-security@amazon.com':357C 'awslab':35B,89C,99C 'awslabs.mysql':129C,233C,260C,271C,287C 'best':196C 'best-effort':195C 'block':70B,183C 'boundari':211C 'bulletin':104C 'bypass':9A 'certain':155C 'check':14A,54B,66B,179C 'circumv':55B,164C 'client':240C 'client-sid':239C 'comment':8A,59B,168C 'concern':363C 'condit':156C 'confidenti':226C 'configur':81B,217C,257C,299C 'content':111C 'context':141C 'control':247C 'coordin':352C 'correct':205C 'could':162C 'credenti':255C 'custom':246C,278C 'cve':15A,18A,84C,94C,324C 'databas':75B,207C,254C,297C 'date':117C 'defens':292C 'depth':294C 'descript':123C 'disclosur':27B,353C 'distribut':144C 'effect':210C 'effort':197C 'email':356C 'enforc':161C 'ensur':295C 'expect':181C 'explicit':319C 'file':316C 'ghsa':328C 'ghsa-x25m-ph3m-3r9q':327C 'github.com':147C 'github.com/awslabs/mcp':146C 'grant':305C 'hold':314C 'host':33B,43B,139C 'id':105C 'identifi':125C 'import':113C 'inlin':7A,58B,167C 'instal':248C,285C 'integr':228C 'issu':87C,97C,127C,221C,267C,343C 'jaeyoung':338C 'lab':26B 'lab-disclosur':25B 'later':283C 'like':335C 'manag':244C 'mcp':4A,28B,38B,44B,92C,102C,131C,235C,262C,273C,289C,302C 'mcp-server':130C,234C,261C,272C,288C 'meant':68B 'minimum':308C 'mode':13A,188C 'model':140C 'mysql':3A,29B,37B,47B,82B,91C,101C,218C 'mysql-mcp-serv':2A,36B,90C,100C 'need':320C 'none':322C 'open':135C 'open-sourc':134C 'packag':245C 'part':349C 'pdt':122C 'permiss':208C,214C 'ph3m':330C 'pip':284C 'pleas':355C 'pm':121C 'privileg':78B,251C,309C,317C 'process':354C 'protocol':142C 'provid':189C 'public':116C 'pypi':150C 'python':30B 'question':361C 'read':11A,52B,64B,159C,177C,186C 'read-on':10A,51B,63B,158C,176C,185C 'recommend':277C 'refer':323C 'report':341C 'requir':114C,310C 'resolut':265C 'run':72B,173C 'safeguard':198C 'scope':109C,206C 'secur':360C 'self':32B,42B,138C,243C 'self-host':31B,41B,137C 'self-manag':242C 'server':5A,39B,45B,93C,103C,132C,143C,192C,236C,263C,274C,290C,303C 'servic':232C 'side':241C 'sourc':136C 'sql':6A,57B,166C 'statement':61B,171C 'substitut':203C 'thank':337C 'tool':23B 'type':112C 'unless':318C 'upgrad':279C,286C 'us':347C 'use':56B 'user':83B,219C,298C 'version':153C,259C 'via':145C,165C 'within':76B 'work':345C 'workaround':321C 'would':334C 'x25m':329C 'yun':339C","nicknames":[],"mitigations":[],"who_affected":"Teams running the self-hosted awslabs.mysql-mcp-server at version 1.0.21 or earlier, where the MCP server connects to MySQL with a user that can perform writes or other sensitive actions. AWS states the read-only mode is best-effort and the real boundary is the database user's permissions, so setups where that user is already tightly scoped carry less risk. Teams not using this package can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-09-09T00:00:00+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"ff89ba41-3aa1-4d27-914a-91399e9639e5","poc_count":0,"sources":[{"source":"lab","external_id":"https://aws.amazon.com/security/security-bulletins/rss/2026-103-aws/#CVE-2026-85788","url":"https://aws.amazon.com/security/security-bulletins/rss/2026-103-aws/","severity":null,"published_at":"2026-09-09T00:00:00+00:00","modified_at":null,"first_seen_at":"2026-10-24T18:43:45+00:00","fetched_at":"2026-10-24T18:43:45+00:00","note":"AWS: CVE-2026-85788 - Issue with awslabs mysql-mcp-server"},{"source":"nvd","external_id":"CVE-2026-85788","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-85788","severity":null,"published_at":"2026-09-09T17:17:49+00:00","modified_at":"2026-09-09T20:13:26+00:00","first_seen_at":"2026-10-24T18:53:56+00:00","fetched_at":"2026-10-24T18:53:56+00:00","note":null},{"source":"epss","external_id":"CVE-2026-85788","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-85788","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-25T12:38:49+00:00","fetched_at":"2026-10-25T12:38:49+00:00","note":null}],"documents":[{"id":2885,"url":"https://aws.amazon.com/security/security-bulletins/rss/2026-103-aws/","title":"AWS: CVE-2026-85788 - Issue with awslabs mysql-mcp-server","kind":"advisory","source":"lab","text":"CVE-2026-85788 - Issue with awslabs mysql-mcp-server\n\n### CVE-2026-85788 - Issue with awslabs mysql-mcp-server\n\nBulletin ID: 2026-103-AWS Scope: AWS Content Type: Important (requires attention) Publication Date: 09/09/2026 09:15 PM PDT\n\nDescription:\n\nWe identified an issue in awslabs.mysql-mcp-server (an open-source, self-hosted Model Context Protocol server distributed via github.com/awslabs/mcp and PyPI). In affected versions, under certain conditions the read-only enforcement could be circumvented via SQL inline comments, allowing a statement to run that the read-only check was expected to block. The read-only mode provided by the server is a best-effort safeguard and is not a substitute for correctly scoped database permissions; the effective boundary is the permissions of the configured MySQL user.\n\nThis issue does not affect the confidentiality or integrity of any AWS service. awslabs.mysql-mcp-server is a client-side, self-managed package; customers control installation and the privileges of the database credentials they configure.\n\nAffected versions: awslabs.mysql-mcp-server ≤ 1.0.21\n\nResolution:\n\nThe issue is addressed in awslabs.mysql-mcp-server 1.0.23. We recommend customers upgrade to 1.0.23 or later:\n\n pip install --upgrade awslabs.mysql-mcp-server\n\nAs defense in depth, ensure the database user configured for the MCP server is granted only the minimum privileges required, and does not hold the FILE privilege unless explicitly needed.\n\nWorkarounds:\n\nNone.\n\nReferences:\n\n- CVE-2026-85788\n- GHSA-x25m-ph3m-3r9q\n\nAcknowledgement:\n\nWe would like to thank Jaeyoung Yun for reporting this issue and working with us as part of our coordinated disclosure process.\n\n Please email aws-security@amazon.com with any security questions or concerns.","published_at":"2026-09-09T00: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"}