File Manager

2026-10-22.md

Lowend-relevant CVE digest, last 1 day(s)

generated 2026-10-22 05:01 UTC

CVE-2026-109618, CVSS 9.8 (CRITICAL)

Web / App Stack, published 2026-10-21

Flagged for matching PHP.

PHP uses longjmp() for out-of-memory (OOM) errors to exit the current context and abort handling of the request. Some contexts may not properly account for this scenario and leave request memory in an uninitialized state before performing an allocation. The subsequent request cleanup procedure may read or branch on this memory. Multiple OOM strategies can consistently trigger this condition and lead to remote code execution (RCE).

In practice: exploitable over the network, requires no privileges, needs no user interaction.

References:

Full NVD entry


CVE-2026-109619, CVSS 9.8 (CRITICAL)

Web / App Stack, published 2026-10-21

Flagged for matching PHP.

PHP has various global state that temporarily points into request memory. In some scenarios, global state may not be correctly reset, or may be repopulated after being reset. The global state may then refer to request memory even after it has been freed. Subsequent requests may read or branch on this stale state before it is fully initialized. Multiple strategies can trigger this condition and produce remote code execution (RCE).

In practice: exploitable over the network, requires no privileges, needs no user interaction.

References:

Full NVD entry


CVE-2026-114636, CVSS 8.7 (HIGH)

Web / App Stack, published 2026-10-22

Flagged for matching nginx.

Traefik v3.7.13 before v3.7.14 contains an access-control bypass in the Kubernetes Ingress NGINX provider, where the HTTP router generated for ssl-passthrough Ingresses on non-TLS entry points never applies the Ingress's access-control annotations. Unauthenticated attackers reaching the HTTP entry point with the Ingress host can access backends protected by auth-type, auth-url, or whitelist-source-range annotations, with nothing logged.

In practice: exploitable over the network, requires no privileges, needs no user interaction.

References:

Full NVD entry


CVE-2026-114638, CVSS 8.7 (HIGH)

Web / App Stack, published 2026-10-22

Flagged for matching nginx.

Traefik v3.7.0 before v3.7.14 contains an improper authentication vulnerability in the Kubernetes Ingress NGINX provider that merges client CAs when auth-tls-secret names collide after dot-to-dash normalization. Attackers holding certificates from another host's CA can access a host requiring its own client CA, while that host's legitimate clients are refused.

In practice: exploitable over the network, requires no privileges, needs no user interaction.

References:

Full NVD entry


CVE-2026-111805, CVSS 8.6 (HIGH)

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Apache Traffic Server can be used to exhaust an HTTP/1.1 origin's worker pool via a truncated HTTP/2 Content-Length value.

This issue affects Apache Traffic Server: from 8.0.0 through 8.1.11, from 9.0.0 through 9.2.15, from 10.0.0 through 10.1.4, 10.2.0.

Users are recommended to upgrade to version 9.2.16, 10.1.5, or 10.2.1, which fix the issue.

In practice: exploitable over the network, requires no privileges, needs no user interaction.

References:

Full NVD entry


CVE-2026-111808, CVSS 8.6 (HIGH)

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Apache Traffic Server can be used to exhaust an HTTP/1.1 origin's worker pool via a malformed padded HTTP/2 DATA frame.

This issue affects Apache Traffic Server: from 8.0.0 through 8.1.11, from 9.0.0 through 9.2.15, from 10.0.0 through 10.1.4, 10.2.0.

Users are recommended to upgrade to version 9.2.16, 10.1.5, or 10.2.1, which fix the issue.

In practice: exploitable over the network, requires no privileges, needs no user interaction.

References:

Full NVD entry


CVE-2026-114403, CVSS 8.1 (HIGH)

Web / App Stack, published 2026-10-21

Flagged for matching PHP.

PHPOffice PHPPresentation through 1.2.0 contains an insecure deserialization vulnerability that allows attackers to instantiate arbitrary PHP objects by supplying a crafted presentation file. Attackers can upload a ZIP containing PhpPresentation.xml that IOFactory::load passes to unserialize(), enabling gadget-chain code execution, file writes, or denial of service.

In practice: exploitable over the network, requires no privileges, needs no user interaction.

References:

Full NVD entry


CVE-2023-7356, no NVD score yet

Linux Kernel, published 2026-10-21

Flagged for matching Linux kernel.

In the Linux kernel, the following vulnerability has been resolved:

Bluetooth: ISO: Copy BASE if service data matches EIRBAASERVICE_UUID

Copy the content of a Periodic Advertisement Report to BASE only if

the service UUID is Basic Audio Announcement Service UUID.

References:

Full NVD entry


CVE-2026-98869, no NVD score yet

Linux Kernel, published 2026-10-21

Flagged for matching Linux kernel.

In the Linux kernel, the following vulnerability has been resolved:

bpf: Infer zext_dst based on static register liveness analysis

As reported in the thread [1], the verifier's 32-bit operations zero

extension logic is broken. This logic is responsible for correct

semantics of 32-bit operations on s390 architecture.

According to BPF semantics, operation w1 += 1 is supposed to zero

extend the upper half of the register r1. On s390 the JIT relies on

the verifier emitting explicit zero extension before such operations.

The verifier attempts to minimize the amount of zero extensions

inserted by tracking whether upper halves of the 64-bit registers are

ever used. Previously such tracking worked as follows:

for each operation defining lower but not the upper halves

of the register.

the verifier checked register's subreg_def and set

bpfinsnauxdata->zextdst flag as true via a call to

markinsnzext() function.

bpfoptsubregzextlo32rndhi32() extended 32-bit operations

with bpfinsnauxdata->zextdst set as true by adding

explicit zero extension.

Note that the logic above relies on bpfregstate->subreg_def,

which is a property of a current verifier state.

Before the commit [2] two additional steps happened:

flags REGLIVEREAD{32,64} in bpfregstate->live.

in order to transfer the knowledge about which registers have

their upper halves alive (and thus might require zero extension).

The commit [2] removed the two steps described above,

hence making possible a situation like below:

path P1 and the register happens not to be marked as precise.

between register initialization and usage.

initialized and that path ends hitting the checkpoint C.

zext_dst mark, making it possible for the program to inject

an arbitrary value in the register's upper half.

This commit replaces subregdef based logic with computing zextdst

statically, as a part of the bpfcomputelive_registers() analysis:

registers separately.

register, and the upper half of the register is alive after that

instruction, the instruction is marked as zext_dst.

There is one notable drop in precision: whenever a BPF subprogram is

called, all 64 bits of parameter registers are presumed to be used.

The assumption is that such a drop in precision would not inflict

a noticeable performance penalty.

[1] https://lore.kernel.org/bpf/CAGKGUv=sOuqQtA1Ub-5JXfA4FPosJFYKAQE4B79cK+P1erxqtg@mail.gmail.com/

[2] commit 107e16979905 ("bpf: disable and remove registers chain based liveness")

References:

Full NVD entry


CVE-2026-48830, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Improper authentication in Apache bRPC through 1.17.0 allows a remote unauthenticated attacker to bypass authentication for protected non-builtin HTTP endpoints by first sending a builtin HTTP request on the same HTTP/1.1 keep-alive connection.

When ServerOptions.auth is enabled and builtin HTTP services are exposed on the public listener, a builtin request received as the first message on a socket may cause the connection to be treated as authenticated for later requests on that socket. Users are recommended to upgrade to version 1.18.0, which fixes this issue, or apply this PR separately: https://github.com/apache/brpc/pull/3308

References:

Full NVD entry


CVE-2026-54426, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Uncontrolled recursion in the Redis reply parser in Apache bRPC < 1.18.0 allows a remote Redis server peer to crash a bRPC Redis client process by returning a deeply nested RESP array reply. The parser recursed once for each nested array level without enforcing a depth limit. The fix adds a configurable Redis reply depth limit with default value 128 and rejects replies exceeding that limit. 

Affected Scenarios:

Applications using bRPC as a Redis client with ChannelOptions.protocol="redis" and receiving replies from an untrusted or faulty Redis server peer.

How to Fix:

  1. Upgrade Apache bRPC to 1.18.0.
  2. Apply the patch from PR https://github.com/apache/brpc/pull/3344 .

Note:

After applying the fix, Redis replies with array nesting deeper than redismaxreply_depth are rejected.

References:

Full NVD entry


CVE-2026-54427, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Uncontrolled recursion in the AMF parser in Apache bRPC < 1.18.0 allows a remote RTMP peer to crash a bRPC process by sending deeply nested AMF objects or arrays. The parser recursively processed nested AMF containers without enforcing a depth limit, which could exhaust the native stack.

Affected Scenarios:

Applications using bRPC RTMP support and parsing AMF data from an untrusted RTMP peer. This includes RTMP servers parsing client command messages, RTMP clients parsing server responses or status messages, and either side parsing inbound AMF script data such as metadata or cue points. Direct callers of ReadAMFObject or ReadAMFArray on untrusted input are also affected.

How to Fix:

  1. Upgrade Apache bRPC to 1.18.0.
  2. Apply the patch from PR https://github.com/apache/brpc/pull/3344 .

Note:

The fix introduces a configurable AMF nesting depth limit with default value 128. AMF objects or arrays deeper than amfmaxdepth are rejected after applying the fix.

References:

Full NVD entry


CVE-2026-56387, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

The RTMP AMF parser in Apache bRPC accepts AMF string lengths and array counts directly from untrusted input. A remote unauthenticated attacker who can reach a bRPC server with RTMP enabled can send a small AMF payload with an excessive declared long string length or array count, causing excessive memory allocation or resource consumption before the parser rejects the incomplete payload.

Root Cause:

The AMF long string parser resized the destination string to the declared 32-bit length before validating that the stream contained that many bytes. ECMA array and strict array parsers also accepted 32-bit element counts without a configurable upper bound.

Affected Scenarios:

Deployments that enable the bRPC RTMP server component and accept RTMP traffic from untrusted clients. Direct uses of the AMF parser on untrusted data are also affected.

How to Fix:

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch:  https://github.com/apache/brpc/pull/3353

Note:

The fix introduces configurable AMF parsing limits. The default maximum string size is 64 MiB and the default maximum array element count is 1,048,576. Payloads above these limits are rejected. The limits can be adjusted with amfmaxstringsize and amfmaxarraysize.

References:

Full NVD entry


CVE-2026-56388, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

The Redis server command parser in Apache bRPC accepts an empty RESP array as a command header. A remote unauthenticated attacker who can reach a bRPC server with Redis service enabled can send an empty array header followed by a bulk string, causing an out-of-bounds write in the parser and crashing the process.

Root Cause:

RedisCommandParser::ConsumeImpl rejected negative RESP array counts but accepted zero. It resized the command argument vector to zero elements and continued parsing. When a following bulk string was parsed, the only index guard was a CHECK. In configurations where fatal logs do not abort immediately, execution could continue and write to _args[0] even though the vector was empty.

Affected Scenarios:

Deployments that enable ServerOptions.redis_service and accept Redis protocol traffic from untrusted clients. The issue is reached during parsing before command handling or authentication.

How to Fix:

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3354

Note:

The fix rejects empty RESP arrays as invalid Redis commands and replaces the internal index CHECK with an explicit parse error so malformed command streams cannot fall through to an indexed vector write.

References:

Full NVD entry


CVE-2026-58064, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

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.

Root Cause:

The 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 redismaxallocation_size limit was applied to RESP bulk strings and arrays, but not effectively to the inline command path before allocation.

Affected Scenarios:

Use Apache bRPC server with Redis protocol enabled and reachable by untrusted clients.

How to Fix:

  1. Upgrade Apache bRPC to version 1.18.0, which fixes this issue.
  2. Apply the patch from PR https://github.com/apache/brpc/pull/3363 .

Note:

The fix applies redismaxallocation_size to Redis inline command lines and scans for CRLF before allocating parser arena memory. Inline command lines exceeding this limit are rejected.

References:

Full NVD entry


CVE-2026-61916, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Out-of-bounds reads in URL parsing and case-insensitive header lookup in Apache bRPC before version 1.18.0 on platforms where plain char is unsigned, such as ARM64, allow remote attackers to cause a process crash and denial of service by sending crafted input containing bytes with the high bit set.

Root Cause:

Two 256-entry lookup tables are accessed through pointers biased by 128 so that valid indices are in the range -128 to 127. Input bytes are promoted from plain char to int without first normalizing them to the signed-char range. On affected platforms, bytes in the range 0x80 to 0xFF therefore become indices 128 to 255 and read up to 127 bytes beyond the end of the underlying tables.

Affected Scenarios:

A remotely accessible bRPC HTTP server on an affected platform can reach the vulnerable URL lookup through an unauthenticated request URI containing a high-bit byte. The case-insensitive lookup is also reachable when untrusted header names are processed through APIs such as the HTTP/2 HPACK path. HTTP/1 header names containing high-bit bytes are rejected by the HTTP/1 parser before reaching the vulnerable lookup. Builds where plain char is signed, which commonly include x86_64 builds, are not affected by this issue.

How to Fix:

Choose one of the following options:

  1. Upgrade Apache bRPC to version 1.18.0 or later.
  2. Apply the patch from https://github.com/apache/brpc/pull/3376 .

The fix normalizes lookup-table indices to the signed-char range before accessing the biased tables.

References:

Full NVD entry


CVE-2026-66392, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Apache bRPC versions before 1.18.0 validate the server certificate chain when client TLS peer verification is enabled, but do not bind the certificate to an expected DNS name or IP address. A network attacker who can redirect or intercept a connection and who possesses a certificate issued by a CA trusted by the client for another name may impersonate the requested TLS endpoint.

Affected Scenarios:

Applications use a bRPC client Channel to connect to an untrusted network with certificate verification enabled and trust a CA that can issue certificates for identities other than the intended endpoint.

How to Fix:

Upgrade to Apache bRPC 1.18.0 and enable VERIFYPEER with a positive verifydepth. HTTPS Channels automatically verify the certificate against the host in the Channel URL. Callers may set VerifyOptions::expectedpeername explicitly when the certificate identity differs from the URL host. Alternatively, apply the patch from https://github.com/apache/brpc/pull/3408 .

Note:

The new option performs DNS SAN or IP SAN verification during the TLS handshake. Configurations that set expectedpeername while peer verification is disabled are rejected.

References:

Full NVD entry


CVE-2026-74755, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

An integer underflow in the mcpack2pb component of Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to crash a bRPC server by sending a request containing a string field with a zero valuesize. The UnparsedValue::asstring() function computes size - 1 without validating size; when valuesize is 0 the expression underflows to SIZEMAX, resize() throws std::length_error, and because the exception is not caught on the request parsing path the process aborts (SIGABRT).

Root Cause:

In src/mcpack2pb/parser.cpp, UnparsedValue::asstring() resizes the output string to size - 1, where size is the valuesize of a string field taken directly from the network data. A valuesize of 0 underflows the unsigned sizet, and the subsequent resize() throws an exception that is not caught.

Affected Scenarios:

bRPC servers that accept nshead frames wired to the ubrpc mcpack2 adaptor (for example the NsheadService + UbrpcMcpack2Adaptor deployment pattern) can be crashed by a single unauthenticated request. Stock open-source bRPC registers the ubrpc/nshead_mcpack protocols as client-only, so default server configurations are not affected.

How to Fix:

  1. Upgrade bRPC to a version that includes this fix.
  2. Apply the patch in PR  https://github.com/apache/brpc/pull/3450

References:

Full NVD entry


CVE-2026-74757, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Uncontrolled resource allocation in the mcpack2pb component in Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to make the server allocate a large amount of memory via sending a crafted mcpack request with a huge array item count.

Root Cause:

The bRPC mcpack2pb parser trusts the item count stored in the mcpack array header without validating it against the actual payload size. The code generated by the mcpack2pb protoc plugin uses this count to preallocate memory for repeated protobuf fields via Reserve(). A malformed request declaring item_count = 0x7fffffff can force the server to preallocate about 16GB of virtual memory, which may abort the process (SIGABRT) on memory-constrained hosts.

Affected Scenarios:

Use a bRPC server that wires a NsheadService to UbrpcMcpack2Adaptor (the Baidu ubrpc deployment pattern) and parses requests with code generated by the mcpack2pb protoc plugin. The request body is parsed before authentication.

How to Fix:

(Choose one of the following options)

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3451

Note:

No matter which option you choose, you should know that the fix caps the array item count to the remaining bytes of the array payload.

References:

Full NVD entry


CVE-2026-74758, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

A heap use-after-free in the RTMP protocol component of Apache bRPC (versions < 1.18.0) allows a remote attacker to crash a bRPC RTMP server by sending a crafted Abort control message. No authentication or application-level request is required.

Root Cause:

When an RTMP Abort control message names the chunk stream that is currently being parsed (the chunk stream carrying the message itself), RtmpChunkStream::OnAbortMessage calls RtmpContext::ClearChunkStream, which deletes the RtmpChunkStream while its Feed() is still running. After the message handler returns, Feed() continues to access members of the deleted object, resulting in a heap-use-after-free.

Affected Scenarios:

bRPC servers that enable RTMP support (ServerOptions.rtmp_service set) and accept connections from untrusted networks.

How to Fix:

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch:  https://github.com/apache/brpc/pull/3452

The fix skips clearing the chunk stream when the Abort message targets the chunk stream that is currently being parsed.

References:

Full NVD entry


CVE-2026-78048, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

A reachable-assertion flaw in the HPACK header-compression decoder of the HTTP/2 (h2/gRPC) stack in Apache bRPC (version < 1.18.0) on all platforms allows a remote attacker to crash the server process by sending a crafted sequence of HPACK headers, resulting in a denial of service.

Root Cause:

In src/brpc/details/hpack.cpp, IndexTable::Init sizes the dynamic-table ring buffer as numheaders = maxsize / (32 + 2), i.e. it assumes a minimum table entry of 34 bytes (name >= 1 byte + value >= 1 byte + 32 bytes of overhead). However, RFC 7541 section 4.1 specifies that the minimum entry size is 33 bytes, because the value may be empty (name >= 1 byte + value == 0 + 32 bytes). For the default 4096-byte table this allocates only 120 slots (4096/34). Eviction in AddHeader is driven by byte usage (maxsize), not by slot count, so a peer can add 121 minimal 33-byte entries (121*33 = 3993 <= 4096) without triggering eviction. The 121st AddHeader then hits CHECK(!headerqueue.full()), which aborts the process.

Affected Scenarios:

Use a bRPC server that serves HTTP/2 or gRPC requests (e.g. via the h2 protocol) from an untrusted network. The malicious header block is processed during HPACK decoding of incoming requests without authentication.

How to Fix:

(Choose one of the following options) 

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3462

Note:

The fix sizes the dynamic table for the 33-byte minimum entry (maxsize / (32 + 1)) and ensures at least one ring-buffer slot is kept when maxsize is smaller than the minimum entry, so that initialization cannot fail on malloc(0).

References:

Full NVD entry


CVE-2026-78058, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Uncontrolled resource consumption in the HTTP/2 (h2) receive path of Apache bRPC (version < 1.18.0) on all platforms allows a remote unauthenticated attacker to crash the server or grow its memory without bound by sending crafted HTTP/2 frames.

Root Cause:

The h2 parser, enabled by default on every bRPC server port and used by h2/gRPC clients, trusts the peer to respect receive-side limits that bRPC advertises but never enforces:

  1. SETTINGSMAXCONCURRENT_STREAMS defaulted to unlimited and was never checked on the server, letting a peer pin an unbounded number of pending streams per connection (~100x memory amplification).
  2. SETTINGSMAXHEADERLISTSIZE defaulted to unlimited and was never enforced; 1-byte HPACK indexed references amplify a small HEADERS frame ~4000x into an unbounded decoded header list ("HPACK bomb"), and a never-completed HEADERS/CONTINUATION block accumulates memory without limit.
  3. Control-frame acks (PING/SETTINGS acks, RSTSTREAM, GOAWAY, WINDOWUPDATE) unconditionally bypassed the -socketmaxunwritten_bytes write cap, so a PING flood combined with withheld TCP reads grew the connection buffer without the documented bound.
  4. The HPACK dynamic table size update was validated against the protocol default (4096) instead of the advertised SETTINGSHEADERTABLE_SIZE, which together with the dynamic-table queue/accounting issue can desynchronize the decoder and dereference NULL (crash).

Affected scenarios:

Any bRPC server serving HTTP/h2/gRPC to an untrusted network, and any bRPC h2/gRPC client connecting to an untrusted backend. The h2 parser runs before any Authenticator check on the shared port.

How to fix:

Upgrade bRPC, or apply the patch in https://github.com/apache/brpc/pull/3474.

Note:

After applying the fix the following limits are enforced by default:

Requests exceeding these limits are rejected (RSTSTREAM(REFUSEDSTREAM) or a connection error).

References:

Full NVD entry


CVE-2026-78334, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Missing authentication in the streaming RPC path of Apache bRPC (version < 1.18.0) on all platforms allows a remote attacker to bypass server authentication and inject or deliver streaming frames, when a server is configured with an Authenticator.

Root Cause:

When authentication is configured, streaming RPC frames are consumed directly by the streaming parser (ParseStreamingMessage) and never pass through InputMessenger's authentication hook, so an unauthenticated peer can exchange frames without being authenticated. In addition, a server-accepted stream is bound lazily to the first frame that happens to carry its id, so a stream could accept a frame carrying its id from a socket other than the socket that created the stream.

Affected Scenarios:

A bRPC server configured with authentication that serves streaming RPC from an untrusted network, or a deployment where a foreign connection can impersonate a stream by id, can be made to accept unauthorized streaming frames.

How to Fix:

Upgrade bRPC to 1.18.0, which fixes this issue, or apply the patch in PR https://github.com/apache/brpc/pull/3481.

Note:

The fix rejects streaming frames on server sockets when configured authentication has not completed, and keeps server-accepted streams bound to the socket of their creating RPC and rejects frames arriving from another socket. Authenticated streaming RPC behavior and the wire format are unchanged; only unauthenticated or foreign-socket frames are now rejected.

References:

Full NVD entry


CVE-2026-79704, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

An out-of-bounds read vulnerability exists in the streaming RPC client of Apache bRPC (versions 1.11.0 through  1.17.0) on all platforms. A client that creates multiple streams in a single RPC expects the server response to carry exactly one extrastreamid for every additional stream. The response handling path indexed the returned identifiers using the locally created stream count without first validating the size of the returned list, so a malicious or compromised server (or an on-path attacker) can trigger an out-of-bounds read in the client by returning a malformed StreamSettings response with fewer extrastreamids than expected. This may crash the client process (denial of service) or leak unintended memory contents into subsequent stream handling; surplus identifiers have no valid client-stream mapping and are processed inconsistently.

Root Cause:

Since bRPC 1.11.0, a client can create multiple streams in one RPC via batch StreamCreate. The expected behavior is that the server response must return exactly (N-1) extrastreamids, where N is the number of locally created streams. In Controller::HandleStreamConnection, the response path reads extrastreamids[i-1] for each additional local stream without first comparing the returned list size with (N-1). If the server returns fewer identifiers, the read runs past the end of the returned list (out-of-bounds read); if it returns more, the surplus identifiers have no corresponding client-side stream.

Affected Scenarios:

A bRPC client using multi-stream RPC (creating more than one stream in a single RPC) that connects to an untrusted, malicious, or compromised server or to a server reached through an untrusted network path. The server sends a malformed StreamSettings response to trigger the issue.

How to Fix:

(Choose one of the following options) 

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3485

Note:

The fix makes the client reject responses whose extrastreamids count does not exactly match the number of additional client streams. Such mismatched responses now fail the RPC with ERESPONSE and go through the existing stream cleanup path, instead of being partially processed.

References:

Full NVD entry


CVE-2026-80463, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Unbounded memory accumulation in the stream message reassembly path of Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to exhaust the memory of a server (denial of service) by sending an endless sequence of continuation data frames.

Root Cause:

The streaming RPC protocol bounds every single data frame by maxbodysize, but a fragmented stream message accumulates continuation frames into one buffer (pendingbuf) without any limit on the accumulated size. A malicious peer that can open a stream can therefore keep sending continuation frames to make the receiver accumulate an arbitrarily large in-memory message. Since the default flow-control settings (socketmaxstreamsunconsumedbytes=0) do not throttle the sending rate, the receiver's memory grows until the process runs out of memory and crashes or becomes unavailable.

Affected Scenarios:

Services that accept streams from untrusted clients (for example using brpc::StreamAccept or brpc::StreamCreate with the built-in streaming protocol) are affected.

How to Fix:

(Choose one of the following options)

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3489

Note:

The fix limits the accumulated payload of a fragmented stream message to maxbodysize (default 64MB). When the accumulated payload exceeds the limit, the pending fragments are released and the stream is closed with error EMSGSIZE. After applying the fix, legitimate fragmented stream messages larger than maxbodysize will be rejected; you can adjust the gflag maxbodysize to change the limit.

References:

Full NVD entry


CVE-2026-81755, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Uncontrolled resource consumption in the streaming RPC component of Apache bRPC (version < 1.18.0) allows a remote attacker to exhaust server memory and cause denial of service by sending a single RPC request that declares an excessive number of streams.

Root Cause:

In the streaming RPC feature, a client can declare multiple streams in one RPC request by putting extra stream identifiers into the repeated field streamsettings.extrastreamids of the RPC meta. On the server side, StreamAccept creates one response stream for every stream identifier declared by the request, without limiting the number of streams accepted in a single RPC. The request body size is only bounded by maxbody_size (default 64MB), which is enough to carry millions of stream identifiers. Each accepted stream allocates its own bthread execution queue and associated resources, so a single crafted request can make the server create a huge number of streams and exhaust memory, leading to denial of service.

Affected Scenarios:

Use a bRPC server that serves streaming RPC and calls StreamAccept to accept streams from untrusted clients.

How to Fix:

(Choose one of the following options) 

  1. Upgrade bRPC to the 1.18.0 version.
  2. Apply this patch: https://github.com/apache/brpc/pull/3493

Note:

The fix adds a new gflag streammaxstreamsperrequest with a default value of 64. Requests declaring more streams than the limit are rejected before any response stream is created. Applications that legitimately need to accept more than 64 streams in one RPC must raise this flag; otherwise such requests will fail after applying the fix.

References:

Full NVD entry


CVE-2026-82210, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Enforceable assertion in the streaming feature of Apache bRPC (version < 1.18.0) on all platforms allows a remote attacker to crash the server process by sending a malformed stream feedback frame.

Root Cause:

When handling FRAMETYPEFEEDBACK frames, bRPC calls Stream::SetRemoteConsumed() which contains CHECK(curbufsize > 0) and unconditionally asserts CHECK(buf.IsEmpty()) on the frame payload. A feedback frame that carries an unexpected payload, or a feedback frame received on a stream where flow control is disabled (curbuf_size == 0), reaches these assertions. On failure, CHECK failures abort the process, allowing an unauthenticated single client (once a stream is established) to terminate the server and cause a denial of service.

Affected Scenarios:

Use bRPC server with the streaming control feature (Stream API) served from untrusted network.

How to Fix:

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3494

The fix rejects malformed feedback frames with EPROTO and closes only the affected stream instead of crashing the whole process, and it bounds buffer shrinking so curbufsize never drops to 0 while flow control is enabled.

References:

Full NVD entry


CVE-2026-82942, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

A data race in the RDMA transport of Apache bRPC (versions < 1.18.0) allows a remote client to crash the server process (denial of service) when RDMA is enabled at build time and runtime.

Root Cause:

When a bRPC server negotiates RDMA with a client, the handshake completes on the TCP fd, but the server kept parsing that fd afterwards as if it were still an RPC channel. The TCP-fd input stream and the RDMA QP input stream (driven by CQ events) shared the same Socket::readbuf, preferredindex and parsingcontext without synchronization. In addition, CQ event processing could start while the handshake parsing was still in progress, and the handshake ACK phase could consume bytes belonging to the next protocol. A remote, unauthenticated client that has completed the RDMA handshake can send data on the TCP fd at the same time RDMA messages are being processed, corrupting the shared input buffer and parser state and crashing the server process (CWE-362, availability impact).

Affected Scenarios:

Use a bRPC server with RDMA support enabled (built with BRPCWITHRDMA and serving rdma:// / SOCKETMODERDMA sockets) and accept connections from untrusted clients. Deployments without RDMA are not affected.

How to Fix:

(Choose one of the following options)

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3505

References:

Full NVD entry


CVE-2026-82953, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

NULL pointer dereference in the RTMP protocol implementation in Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to crash the server (denial of service) via a crafted createStream command.

Root Cause:

When an RTMP service rejects a createStream request by returning a null stream from RtmpService::NewStream(), the server sends an error response to the client. If writing this rejection response fails (for example, because the client closes the connection immediately after sending the createStream command), the error-handling path in RtmpChunkStream::OnCreateStream() dereferences the null stream pointer to access stream->onfailid, causing the process to crash.

Affected Scenarios:

Run an Apache bRPC RTMP server whose RtmpService::NewStream() may return null (i.e., the service rejects createStream requests). A remote client that sends a createStream command and then closes the connection before the rejection response is written can crash the server.

How to Fix:

(Choose one of the following options)

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3508

References:

Full NVD entry


CVE-2026-84747, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Interpretation conflict in the HTTP protocol implementation in Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to bypass access control rules enforced by a front proxy.

Root Cause:

The method dispatch function FindMethodPropertyByURI() in bRPC's HTTP protocol splits the request path with a string splitter that skips empty fields, so paths containing empty path segments (consecutive slashes), such as //flags, /flags// and /flags//port, are dispatched to the same method as their collapsed form /flags. Per RFC 3986 these are distinct paths. A front proxy that enforces an ACL (e.g. blocking access to builtin services such as /flags) matches the collapsed form only, and therefore forwards the padded literal to the bRPC server, where it is dispatched as if it were the collapsed form. This differential allows //flags?setvalue= to reach a builtin service that /flags is not allowed to reach. Additionally, the HTTP/2 implementation never validated the :path pseudo-header, so requests without a :path, or with a :path that neither begins with '/' nor is the asterisk-form '*', contrary to RFC 9113 section 8.3.1, were not rejected.

Affected Scenarios:

Deployments of Apache bRPC behind a front proxy or gateway that performs access control (ACL) decisions on the literal request path, where the bRPC server accepts HTTP or HTTP/2 traffic from that proxy. In such deployments an attacker can send a path containing empty path segments to reach a resource that the front proxy intended to block.

How to Fix:

(Choose one of the following options)

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3512

Note:

After applying the fix, HTTP and HTTP/2 request paths containing empty path segments (consecutive slashes) are rejected by default, and HTTP/2 :path values that are empty or neither begin with '/' nor equal '*' are rejected. Deployments that depend on the previous lenient behavior can restore it by turning on the gflag -httpallowemptypathsegments, which is not recommended for servers exposed to untrusted traffic.

References:

Full NVD entry


CVE-2026-84748, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Improper authorization in Apache bRPC (versions < 1.18.0) on all platforms allows remote attackers to access builtin services through the public port.

Root Cause:

ServerOptions.internalport is documented to make builtin services (and Tabbed services) reachable only from the internal port, and the HTTP/h2 dispatch path enforced this. However, all protobuf-based protocol dispatch paths (baidustd, hulupbrpc, sofapbrpc, and the nshead-based protocols publicpbrpc, nsheadmcpack, novapbrpc and ubrpc2pb) computed the securitymode flag but never enforced it between method resolution and method invocation. Since builtin services share the method map with user services, a client able to reach the public port could invoke builtin services such as brpc.vars or hotspots by name over these pb protocols and disclose sensitive runtime information (metrics, flags, profiler data) that the operator intended to expose only via the internal port.

Affected Scenarios:

Use a bRPC server with ServerOptions.internal_port configured (or with builtin/Tabbed services otherwise expected to be gated by it) while the public port is reachable from an untrusted network and any pb-based protocol is enabled.

How to Fix:

(Choose one of the following options) 

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3511

References:

Full NVD entry


CVE-2026-86146, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

Inconsistent interpretation of HTTP requests (HTTP request/response smuggling) in the bundled HTTP/1.1 parser of Apache bRPC (version < 1.18.0) on all platforms allows remote attackers to smuggle requests and inject headers when bRPC is deployed behind a proxy or load balancer that parses the same bytes differently.

Root Cause:

The bRPC fork of http-parser accepts and acts on several HTTP/1.1 header forms that a conforming front-end either rejects or interprets differently, so the framing or the header set of a message can differ between the front-end and bRPC:

  1. A space before the colon of framing headers (e.g. Content-Length : 5) is accepted; the value still drives bRPC's framing while the reported field name contains the trailing space.
  2. Interior spaces inside a Content-Length value (e.g. Content-Length: 1 3) are skipped, so bRPC reads 13 where a front-end reads 1 or rejects the message (same class as CVE-2022-32213 in Node.js).
  3. Obsolete line folding (obs-fold, RFC 7230 3.2.4) of Content-Length and Transfer-Encoding values is accepted, so a folded framing value drives bRPC's framing while a front-end that does not unfold sees a different message.
  4. Chunked trailer fields are fed to the same header callbacks as the header section and are merged into the header map like real headers. A front-end only inspects the header section, so any chunked request can smuggle fields such as Authorization or X-Forwarded-For past it.
  5. Transfer-Encoding lists with optional whitespace after a comma (e.g. Transfer-Encoding: gzip, chunked) are not recognized as chunked: such requests are rejected, and responses are read until connection close instead of as chunked, causing response desync.

Affected Scenarios:

bRPC server or client communicating over HTTP/1.1 with a front proxy, load balancer, or any peer that parses the message independently. An attacker able to send requests through the front-end can desynchronize the two parsers to smuggle requests, forge headers (e.g. Authorization, X-Forwarded-For) via chunked trailers, or desynchronize responses.

How to Fix:

(Choose one of the following options)

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3521

Note:

After applying the fix, the four header forms above are rejected by default and chunked trailers are dropped instead of merged into the header map. Two gflags are provided for compatibility: httpallowobsfold=true restores acceptance of folded Content-Length/Transfer-Encoding values, and httpstrictheadertoken=true additionally rejects spaces inside any header field name (not only the ones that decide framing). Legitimate clients that do not use these obsolete forms are unaffected.

References:

Full NVD entry


CVE-2026-86147, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

External control of file name or path and uncontrolled resource consumption in Apache bRPC (version < 1.18.0) on all platforms allows remote attackers who can reach the builtin service port to create directories and truncate/overwrite files with the privileges of the server process, or to hold the process-wide CPU/contention profiler for an arbitrarily long time.

Root Cause:

  1. The builtin /flags service allows gflags carrying a validator to be modified at runtime via ?setvalue=. The bvar/mbvar dump path gflags (bvardumpfile, bvardumptabs, mbvardumpfile) were registered with an accept-anything validator whose only purpose was to wake the dumping thread. A remote attacker could therefore repoint the dump path (e.g. GET /flags/bvardumpfile?setvalue=/victim/dir/target followed by GET /flags/bvardump?setvalue=true, or the equivalent for mbvardumpfile, which is used verbatim without a forced suffix), making the dumping thread recursively create directories and open/truncate files at attacker-chosen locations. Tab names in bvardump_tabs were appended to the path without sanitization, allowing '..' to escape the configured directory.
  2. The /pprof builtin service did not clamp the ?seconds= parameter to FLAGSmaxprofiling_seconds (a limit that /hotspots enforced). A single request such as ?seconds=2147483647 made the handler sleep for decades while holding the process-wide gperftools CPU profiler or bthread contention profiler, so /hotspots/cpu and /hotspots/contention returned 503 for everyone else during that time.

Affected Scenarios:

Any Apache bRPC server exposing the builtin services (enabled by default on the same port as normal RPC traffic) to untrusted networks.

How to Fix:

(Choose one of the following options)

  1. Upgrade bRPC to version 1.18.0, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3523

Note:

After the fix, bvardumpfile, bvardumptabs and mbvardumpfile can no longer be modified at runtime through the /flags builtin service. They can still be changed programmatically via google::SetCommandLineOption(), taking effect on the next dump cycle. The profiling duration of /pprof is now capped by the -maxprofilingseconds gflag (default 300 seconds), which can be adjusted by the server owner.

References:

Full NVD entry


CVE-2026-87849, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server.

The Discovery naming-service reply parser in Apache bRPC (versions < 1.18.0) calls RapidJSON object-only accessors (FindMember) on JSON values without first validating that those values are objects. A malformed Discovery response whose data/service members or instances list contain non-object entries (e.g. a bare integer) triggers the RapidJSON object-access precondition on the client, reading memory out of bounds and potentially crashing the bRPC client.

Root Cause:

In src/brpc/policy/discoverynamingservice.cpp, DiscoveryNamingService::GetServers() and DiscoveryNames::ListDiscoveryNodes() access JSON values with member functions on non-object values. RapidJSON only defines these operations for object types; invoking them on a non-object violates the class invariant and results in undefined behavior (out-of-bounds read), commonly crashing the process.

Affected Scenarios:

An operator-configured (or compromised) Discovery backend returns a malformed /discovery/nodes or /discovery/fetchs response whose data/service/instance entries are not JSON objects, crashing any bRPC client that refreshes its server list.

How to Fix:

  1. Upgrade bRPC to version 1.18.0 or later, which fixes this issue.
  2. Apply this patch: https://github.com/apache/brpc/pull/3533

The fix validates that the Discovery response data, per-service data, and instance entries are JSON objects (and skips non-object node/instance entries and rejects non-object data/service values) before calling member accessors.

References:

Full NVD entry


CVE-2026-90484, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching Apache HTTP Server, MySQL.

The MySQL client response parser in Apache bRPC dereferences a null pointer when the server peer sends a zero-payload-length response packet. A response packet whose declared payload length is zero is accepted by the frame-length check (isfullpackage), after which the parser reads the response type byte via an unbounded 5-byte fetch that returns nullptr, and type = p[4] dereferences it, crashing the client process.

Root Cause: In brpc::policy::MysqlReply::ConsumePartialIOBuf, buf.fetch(header, 5) returns nullptr when the buffered data only holds the 4-byte header of a zero-length packet, then the code reads p[4] (and, in the fast-auth path, p2[4]) without checking for a null or zero-length packet.

Affected Scenarios: A brpc MySQL client connecting to a malicious or compromised MySQL server (or a MITM) can be crashed by a zero-length server response packet, resulting in denial of service of the client.

Fix: The fix rejects zero-length response packets (returning PARSEERRORABSOLUTELY_WRONG) both for the initial response type determination and after a fast-auth marker, before reading the type byte. Upgrade to the Apache bRPC version 1.18.0 or apply the PR patch at https://github.com/apache/brpc/pull/3536.

References:

Full NVD entry


CVE-2026-114509, no NVD score yet

Web / App Stack, published 2026-10-21

Flagged for matching MariaDB, MySQL.

Laravel is a web application framework. Prior to 12.68.0 and 13.29.0, TokenGuard configured as a standard token-based API guard does not reject a crafted non-string credential. Under affected MySQL or MariaDB configurations, the authentication lookup can match an unintended existing user, allowing an unauthenticated attacker to bypass authentication and take over an account on routes protected by TokenGuard. This issue is fixed in versions 12.68.0 and 13.29.0.

References:

Full NVD entry


CVE-2026-94140, no NVD score yet

Remote Access / Networking, published 2026-10-21

Flagged for matching OpenSSH.

Rex versions through 1.16.1 for Perl accept an unknown SSH host key for remote rsync transfers because sync hardcodes StrictHostKeyChecking=no.

Every remote branch of sync builds its ssh command with that option, for password authentication, for private-key authentication and for the fallback. The ssh options a caller sets through setopensshopt reach the OpenSSH transport but not this command, so there is no configuration that restores host key checking for the transfer.

An attacker who can redirect the connection before the real host key is known presents their own and the transfer proceeds: under password authentication sync sends the connection password to that server, an upload writes the selected local files to it, and a download writes what it returns to the local destination.

References:

Full NVD entry