{"id":"CVE-2026-58064","kind":"vulnerability","aliases":["CVE-2026-58064"],"related":[],"title":"Apache bRPC: inline Redis parsing allocates whole buffer, enabling memory denial of service","description":"The Redis protocol implementation in Apache bRPC allowed inline command parsing to allocate and copy the full connection buffer before a complete CRLF-terminated command was available. A remote attacker with access to a Redis-protocol bRPC service could send long inline inputs without a terminating CRLF to increase memory usage and CPU copy overhead, potentially causing denial of service.\n\n\nRoot Cause:\nThe Redis inline command parser allocated memory based on the current input buffer size and copied the entire buffer before determining the current inline command boundary. The existing redis_max_allocation_size limit was applied to RESP bulk strings and arrays, but not effectively to the inline command path before allocation.\n\n\nAffected Scenarios:\nUse Apache bRPC server with Redis protocol enabled and reachable by untrusted clients.\n\n\nHow to Fix:\n1. Upgrade Apache bRPC to version 1.18.0, which fixes this issue.\n2. Apply the patch from PR  https://github.com/apache/brpc/pull/3363 .\n\n\nNote:\nThe fix applies redis_max_allocation_size to Redis inline command lines and scans for CRLF before allocating parser arena memory. Inline command lines exceeding this limit are rejected.","summary":"The Redis protocol handler in Apache bRPC copies the entire connection buffer for inline commands before a complete CRLF-terminated line arrives. A remote client can send long inline input without a terminator to drive up memory use and CPU copy overhead, causing denial of service.","severity":"medium","cvss":null,"epss":0.00202,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["apache-brpc","redis-protocol","runtime","self-hosted"],"not_affected_if":["internal-only-network","redis-protocol-disabled"],"how_to_check":"- Check whether the bRPC server is built with Redis protocol support and listens on a port reachable by untrusted clients.\n- Run `grep -rn redis_max_allocation_size` in the bRPC source or config to see whether the limit is set.","fix":"- Upgrade Apache bRPC to `1.18.0`.\n- Or apply the patch from https://github.com/apache/brpc/pull/3363.","status":"open","published_at":"2026-10-21T12:17:21+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","triaged_at":"2026-10-25T05:02:48+00:00","updated_at":"2026-10-25T05:02:48+00:00","category":"runtime","confidence":0.7,"triage":{"at":"2026-10-25T05:02:48Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Apache bRPC to `1.18.0`.\n- Or apply the patch from https://github.com/apache/brpc/pull/3363.","reach":"internet","title":"Apache bRPC: inline Redis parsing allocates whole buffer, enabling memory denial of service","impact":"medium","summary":"The Redis protocol handler in Apache bRPC copies the entire connection buffer for inline commands before a complete CRLF-terminated line arrives. A remote client can send long inline input without a terminator to drive up memory use and CPU copy overhead, causing denial of service.","category":"runtime","nicknames":[],"who_cares":["apache-brpc","redis-protocol","self-hosted"],"confidence":0.7,"needs_auth":"no","worst_case":"Remote clients exhaust server memory and CPU, causing denial of service.","analyst_note":"","how_to_check":"- Check whether the bRPC server is built with Redis protocol support and listens on a port reachable by untrusted clients.\n- Run `grep -rn redis_max_allocation_size` in the bRPC source or config to see whether the limit is set.","needs_analyst":false,"not_affected_if":["redis-protocol-disabled","internal-only-network"],"who_is_affected":"Only servers that run Apache bRPC with the Redis protocol enabled and accept connections from untrusted clients are exposed. Services that do not expose the Redis protocol, or only accept trusted internal traffic, can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"medium"},"cost_usd":0.000639,"input_tokens":3653,"output_tokens":548,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':15A,18A '-58064':16A,19A '/apache/brpc/pull/3363':229C '1':210C '1.18.0':216C '2':221C 'access':109C 'affect':192C 'alloc':6A,89C,146C,171C,191C,236C,248C 'allow':84C 'apach':1A,21B,35B,82C,195C,212C 'apache-brpc':20B 'appli':175C,222C,233C 'arena':250C 'array':181C 'arriv':52B 'attack':107C 'avail':104C 'base':148C 'boundari':166C 'brpc':2A,22B,36B,83C,115C,196C,213C 'buffer':8A,41B,95C,153C,159C 'bulk':178C 'caus':73B,135C,140C 'client':55B,206C 'command':44B,86C,102C,144C,165C,188C,241C,253C 'complet':47B,98C 'connect':40B,94C 'copi':37B,71B,91C,132C,156C 'could':117C 'cpu':70B,131C 'crlf':49B,100C,125C,246C 'crlf-termin':48B,99C 'current':151C,163C 'cve':14A,17A 'denial':11A,74B,136C 'determin':161C 'drive':65B 'effect':184C 'enabl':9A,201C 'entir':39B,158C 'exceed':255C 'exist':168C 'fix':209C,218C,232C 'full':93C 'github.com':228C 'github.com/apache/brpc/pull/3363':227C 'handler':33B 'host':29B 'implement':80C 'increas':127C 'inlin':3A,43B,59B,85C,120C,143C,164C,187C,240C,252C 'input':60B,121C,152C 'issu':220C 'limit':173C,257C 'line':51B,242C,254C 'long':58B,119C 'max':170C,235C 'memori':10A,67B,128C,147C,251C 'note':230C 'overhead':72B,133C 'pars':5A,87C 'parser':145C,249C 'patch':224C 'path':189C 'potenti':134C 'pr':226C 'protocol':25B,32B,79C,114C,200C 'reachabl':203C 'redi':4A,24B,31B,78C,113C,142C,169C,199C,234C,239C 'redis-protocol':23B,112C 'reject':259C 'remot':54B,106C 'resp':177C 'root':139C 'runtim':26B 'scan':244C 'scenario':193C 'self':28B 'self-host':27B 'send':57B,118C 'server':197C 'servic':13A,76B,116C,138C 'size':154C,172C,237C 'string':179C 'termin':50B,63B,101C,124C 'untrust':205C 'upgrad':211C 'usag':129C 'use':68B,194C 'version':215C 'whole':7A 'without':61B,122C","nicknames":[],"mitigations":[],"who_affected":"Only servers that run Apache bRPC with the Redis protocol enabled and accept connections from untrusted clients are exposed. Services that do not expose the Redis protocol, or only accept trusted internal traffic, can skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-21T12:17:21+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-58064","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-58064","severity":null,"published_at":"2026-10-21T12:17:21+00:00","modified_at":"2026-10-22T16:56:37+00:00","first_seen_at":"2026-10-23T21:57:28+00:00","fetched_at":"2026-10-23T22:29:01+00:00","note":null},{"source":"epss","external_id":"CVE-2026-58064","url":"https://api.first.org/data/v1/epss?cve=CVE-2026-58064","severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-24T13:15:54+00:00","fetched_at":"2026-10-24T13:15:54+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"}