{"id":"CVE-2026-97054","kind":"vulnerability","aliases":["CVE-2026-97054","GO-2026-6859"],"related":[],"title":"HTTP/1 server crash due to MaxBytesReader header race in net/http","description":"For HTTP/1 servers, when MaxBytesReader's limit is exceeded, \"Connection: close\" header is automatically set without synchronization, which might race with another header being set explicitly in the server handler. As a result, an HTTP/1 server that utilizes MaxBytesReader or MaxBytesHandler can crash due to runtime panic if its handler reads the request body concurrently with writing the response header.","summary":"When a Go HTTP/1 server's MaxBytesReader limit is exceeded, the standard library sets a Connection header without synchronization, which can race with a handler setting a header. The race can cause a runtime panic that crashes the server.","severity":"medium","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"stdlib","fixed":["1.26.11","1.27.4"],"affected":">= 1.27.0-0, < 1.27.4","ecosystem":"go"}],"ecosystems":["go"],"tags":["go","http-server","net-http","runtime"],"not_affected_if":["http2-only","no-maxbytesreader","sequential-body-read"],"how_to_check":"- Run `go version` on the build machine to see the Go toolchain; the affected range is `1.27.0` up to `1.27.4`.\n- Search the codebase for `http.MaxBytesReader` or `http.MaxBytesHandler` and check whether handlers read the request body while writing response headers concurrently.","fix":"- Go `1.26.11`\n- Go `1.27.4`","status":"open","published_at":"2026-11-11T02:51:11+00:00","first_seen_at":"2026-11-11T03:37:17+00:00","triaged_at":"2026-11-11T03:39:03+00:00","updated_at":"2026-11-11T03:39:03+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-11-11T03:39:03Z","model":"claude-haiku-5-5","output":{"fix":"- Go `1.26.11`\n- Go `1.27.4`","reach":"internet","title":"Go net/http: MaxBytesReader header race can crash HTTP/1 servers","impact":"medium","summary":"When a Go HTTP/1 server's MaxBytesReader limit is exceeded, the standard library sets a Connection header without synchronization, which can race with a handler setting a header. The race can cause a runtime panic that crashes the server.","audience":"developers","category":"runtime","nicknames":[],"who_cares":["go","net-http","http-server"],"confidence":0.6,"fix_status":"available","needs_auth":"no","worst_case":"Remote request crashes the Go server process via runtime panic","analyst_note":"","how_to_check":"- Run `go version` on the build machine to see the Go toolchain; the affected range is `1.27.0` up to `1.27.4`.\n- Search the codebase for `http.MaxBytesReader` or `http.MaxBytesHandler` and check whether handlers read the request body while writing response headers concurrently.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["http2-only","no-maxbytesreader","sequential-body-read"],"who_is_affected":"Go services that use net/http for HTTP/1 serving and wrap request bodies with MaxBytesReader or MaxBytesHandler, where a handler reads the body concurrently with writing the response header. Servers that use HTTP/2 only, do not use these helpers, or do not read bodies concurrently with header writes are less exposed. unknown for exact exploitability conditions beyond the description.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000763,"input_tokens":4612,"output_tokens":603,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A,18A '-6859':16A '-97054':13A,19A 'anoth':89C 'automat':81C 'bodi':121C 'caus':60B 'close':78C 'concurr':122C 'connect':44B,77C 'crash':3A,65B,110C 'cve':11A,17A 'due':4A,111C 'exceed':38B,76C 'explicit':93C 'go':14A,21B,31B 'handler':53B,97C,117C 'header':7A,45B,56B,79C,90C,127C 'http':23B,27B 'http-server':22B 'http/1':1A,32B,69C,102C 'librari':41B 'limit':36B,74C 'maxbyteshandl':108C 'maxbytesread':6A,35B,72C,106C 'might':86C 'net':26B 'net-http':25B 'net/http':10A 'panic':63B,114C 'race':8A,50B,58B,87C 'read':118C 'request':120C 'respons':126C 'result':100C 'runtim':28B,62B,113C 'server':2A,24B,33B,67B,70C,96C,103C 'set':42B,54B,82C,92C 'standard':40B 'stdlib':20A 'synchron':47B,84C 'util':105C 'without':46B,83C 'write':124C","nicknames":[],"mitigations":[],"who_affected":"Go services that use net/http for HTTP/1 serving and wrap request bodies with MaxBytesReader or MaxBytesHandler, where a handler reads the body concurrently with writing the response header. Servers that use HTTP/2 only, do not use these helpers, or do not read bodies concurrently with header writes are less exposed. unknown for exact exploitability conditions beyond the description.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":["stdlib"],"ptokens":["stdlib"],"labels":["go","httpserver","medium","nethttp","runtime"],"campaign_type":null,"search_a":"'-2026':12A,15A,18A '-6859':16A '-97054':13A,19A 'crash':3A 'cve':11A,17A 'due':4A 'go':14A 'header':7A 'http/1':1A 'maxbytesread':6A 'net/http':10A 'race':8A 'server':2A 'stdlib':20A","search_b":"'caus':60B 'connect':44B 'crash':65B 'exceed':38B 'go':21B,31B 'handler':53B 'header':45B,56B 'http':23B,27B 'http-server':22B 'http/1':32B 'librari':41B 'limit':36B 'maxbytesread':35B 'net':26B 'net-http':25B 'panic':63B 'race':50B,58B 'runtim':28B,62B 'server':24B,33B,67B 'set':42B,54B 'standard':40B 'synchron':47B 'without':46B","search_c":"'anoth':89C 'automat':81C 'bodi':121C 'close':78C 'concurr':122C 'connect':77C 'crash':110C 'due':111C 'exceed':76C 'explicit':93C 'handler':97C,117C 'header':79C,90C,127C 'http/1':69C,102C 'limit':74C 'maxbyteshandl':108C 'maxbytesread':72C,106C 'might':86C 'panic':114C 'race':87C 'read':118C 'request':120C 'respons':126C 'result':100C 'runtim':113C 'server':70C,96C,103C 'set':82C,92C 'synchron':84C 'util':105C 'without':83C 'write':124C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-11T02:51:11+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"govuln","external_id":"GO-2026-6859","url":"https://pkg.go.dev/vuln/GO-2026-6859","severity":null,"published_at":"2026-11-11T02:51:11+00:00","modified_at":"2026-11-11T02:51:11+00:00","first_seen_at":"2026-11-11T03:37:17+00:00","fetched_at":"2026-11-11T03:37:17+00:00","note":null}],"documents":[],"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"}