---
id: "CVE-2026-107386"
kind: "vulnerability"
aliases: ["CVE-2026-107386", "GHSA-w6r9-248c-frg8", "GO-2026-6700"]
title: "Pre-negotiation frame limit is not enforced to 4KB in github.com/rabbitmq/amqp091-go"
severity: "medium"
cvss: 6.3
epss: 0.00493
exploited: false
status: "open"
category: "package"
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"]
published_at: "2026-10-08T19:17:01+00:00"
first_seen_at: "2026-10-23T19:13:08+00:00"
updated_at: "2026-10-23T19:57:53+00:00"
sources: [{"source": "govuln", "url": "https://pkg.go.dev/vuln/GO-2026-6700", "first_seen_at": "2026-10-23T19:13:08+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-107386", "first_seen_at": "2026-10-23T19:13:43+00:00"}, {"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-107386", "first_seen_at": "2026-10-23T19:35:23+00:00"}]
---

# Pre-negotiation frame limit is not enforced to 4KB in github.com/rabbitmq/amqp091-go

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.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- go:github.com/rabbitmq/amqp091-go affected < 1.14.0 fixed 1.14.0

## 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.

## Timeline

- 2026-10-23T19:13:08+00:00 govuln https://pkg.go.dev/vuln/GO-2026-6700
- 2026-10-23T19:13:43+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-107386
- 2026-10-23T19:35:23+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-107386

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
