{"id":"CVE-2026-107386","kind":"vulnerability","aliases":["CVE-2026-107386","GHSA-w6r9-248c-frg8","GO-2026-6700"],"related":[],"title":"Pre-negotiation frame limit is not enforced to 4KB in github.com/rabbitmq/amqp091-go","description":"amqp091-go is a Go AMQP 0.9.1 client. From 1.13.0 until 1.14.0, the frame-size mitigation from the prior allocation advisory can be bypassed before connection.tune completes because Connection.maxFrameSize uses zero for both the not-yet-negotiated and negotiated-unlimited states. A malicious or compromised AMQP peer can send a short body-frame header with a large declared payload length, causing ReadFrame and the body-frame parser to allocate attacker-selected memory before the payload is received or the frame's protocol state is rejected. The condition is reachable through public Open even when Config.FrameSize is set to the protocol minimum and can cause severe memory pressure, out-of-memory termination, or loss of the client process before authentication completes. This issue is fixed in version 1.14.0.","summary":"The amqp091-go Go client for AMQP 0.9.1 accepts frames before connection tuning is done and does not enforce the 4KB pre-negotiation frame limit, because a zero value is used for both 'not yet negotiated' and 'unlimited'. A malicious or compromised AMQP peer can send a small frame header declaring a huge payload, making the client allocate attacker-chosen memory and possibly crash with out-of-memory before authentication completes.","severity":"medium","cvss":6.3,"epss":0.00493,"exploited":false,"exploited_at":null,"products":[{"name":"github.com/rabbitmq/amqp091-go","fixed":["1.14.0"],"affected":"< 1.14.0","ecosystem":"go"}],"ecosystems":["go"],"tags":["amqp","go","message-queue","package","rabbitmq"],"not_affected_if":["no-amqp-client-use","version-1.14.0-or-later"],"how_to_check":"Check whether go.mod or go.sum pins github.com/rabbitmq/amqp091-go below 1.14.0 (e.g. grep amqp091-go go.sum).","fix":"Upgrade github.com/rabbitmq/amqp091-go to 1.14.0 or later.","status":"open","published_at":"2026-10-08T19:17:01+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","triaged_at":"2026-10-23T19:57:53+00:00","updated_at":"2026-10-23T19:57:53+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-10-23T19:57:53Z","model":"claude-haiku-5-5","output":{"fix":"Upgrade github.com/rabbitmq/amqp091-go to 1.14.0 or later.","summary":"The amqp091-go Go client for AMQP 0.9.1 accepts frames before connection tuning is done and does not enforce the 4KB pre-negotiation frame limit, because a zero value is used for both 'not yet negotiated' and 'unlimited'. A malicious or compromised AMQP peer can send a small frame header declaring a huge payload, making the client allocate attacker-chosen memory and possibly crash with out-of-memory before authentication completes.","category":"package","who_cares":["go","rabbitmq","amqp","message-queue"],"confidence":0.8,"analyst_note":"","how_to_check":"Check whether go.mod or go.sum pins github.com/rabbitmq/amqp091-go below 1.14.0 (e.g. grep amqp091-go go.sum).\nunknown","needs_analyst":false,"not_affected_if":["version-1.14.0-or-later","no-amqp-client-use"],"severity_if_unknown":"unknown"},"cost_usd":0.000419,"input_tokens":2326,"output_tokens":373,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-107386':17A,28A '-2026':16A,24A,27A '-6700':25A '/rabbitmq/amqp091-go':14A,31A '0.9.1':47B,121C '1.13.0':124C '1.14.0':126C,248C '248c':21A '4kb':10A,60B 'accept':48B 'advisori':136C 'alloc':98B,135C,188C 'amqp':32B,46B,83B,120C,163C 'amqp091':41B,115C 'amqp091-go':40B,114C 'attack':100B,190C 'attacker-chosen':99B 'attacker-select':189C 'authent':112B,240C 'bodi':170C,184C 'body-fram':169C,183C 'bypass':139C 'caus':179C,224C 'chosen':101B 'client':44B,97B,122C,237C 'complet':113B,142C,241C 'compromis':82B,162C 'condit':207C 'config.framesize':215C 'connect':51B 'connection.maxframesize':144C 'connection.tune':141C 'crash':105B 'cve':15A,26A 'declar':91B,176C 'done':54B 'enforc':8A,58B 'even':213C 'fix':245C 'frame':4A,49B,64B,89B,129C,171C,185C,200C 'frame-s':128C 'frg8':22A 'ghsa':19A 'ghsa-w6r9-248c-frg8':18A 'github.com':13A,30A 'github.com/rabbitmq/amqp091-go':12A,29A 'go':23A,33B,42B,43B,116C,119C 'header':90B,172C 'huge':93B 'issu':243C 'larg':175C 'length':178C 'limit':5A,65B 'loss':234C 'make':95B 'malici':80B,160C 'memori':102B,110B,192C,226C,231C 'messag':35B 'message-queu':34B 'minimum':221C 'mitig':131C 'negoti':3A,63B,76B,153C,156C 'negotiated-unlimit':155C 'not-yet-negoti':150C 'open':212C 'out-of-memori':107B,228C 'packag':37B 'parser':186C 'payload':94B,177C,195C 'peer':84B,164C 'possibl':104B 'pre':2A,62B 'pre-negoti':1A,61B 'pressur':227C 'prior':134C 'process':238C 'protocol':202C,220C 'public':211C 'queue':36B 'rabbitmq':38B 'reachabl':209C 'readfram':180C 'receiv':197C 'reject':205C 'select':191C 'send':86B,166C 'set':217C 'sever':225C 'short':168C 'size':130C 'small':88B 'state':158C,203C 'termin':232C 'tune':52B 'unlimit':78B,157C 'use':71B,145C 'valu':69B 'version':247C 'w6r9':20A 'yet':75B,152C 'zero':68B,146C","nicknames":[],"mitigations":[],"who_affected":null,"tier":null,"verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-08T19:17:01+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/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":"security-advisories@github.com","poc_count":0,"sources":[{"source":"govuln","external_id":"GO-2026-6700","url":"https://pkg.go.dev/vuln/GO-2026-6700","severity":null,"published_at":"2026-10-19T21:08:21+00:00","modified_at":"2026-10-19T21:08:21+00:00","first_seen_at":"2026-10-23T19:13:08+00:00","fetched_at":"2026-10-23T19:13:08+00:00","note":null},{"source":"epss","external_id":"CVE-2026-107386","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-107386","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-23T19:13:43+00:00","fetched_at":"2026-10-23T19:13:43+00:00","note":null},{"source":"nvd","external_id":"CVE-2026-107386","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-107386","severity":null,"published_at":"2026-10-08T19:17:01+00:00","modified_at":"2026-10-09T16:17:22+00:00","first_seen_at":"2026-10-23T19:35:23+00:00","fetched_at":"2026-10-23T19:35:23+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}