Skip to content

Add advisory for connectrpc: stalled request body of a finished streaming call - #3238

Merged
djc merged 1 commit into
rustsec:mainfrom
iainmcgin:connectrpc-stalled-body
Sep 23, 2026
Merged

djc merged 1 commit into
rustsec:mainfrom
iainmcgin:connectrpc-stalled-body

Conversation

@iainmcgin

Copy link
Copy Markdown
Contributor

Affected crate(s)

  • connectrpc (about 4.2 million recent downloads per crates.io)

Links to upstream issue(s) or PR(s)

Severity

Allows remote denial-of-service: a client can keep the request body of a finished client-streaming or bidirectional-streaming call open indefinitely, holding a task, up to 4 MiB of buffered data and the stream or connection per call. CVSS 4.0 6.3 (Medium), as in the GitHub advisory.

Checklist

  • Advisory filename(s) starts with RUSTSEC-0000-0000 as the ID
  • date field is set to the public disclosure date
  • Contains a concise and descriptive title after advisory metadata
  • Asked maintainer(s) if publishing an advisory is appropriate: filed by the connect-rust maintainer, who published the GitHub advisory

@djc djc left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks -- LGTM, want to take it out draft?

The CI failure is unrelated and will be fixed in

Comment thread crates/connectrpc/RUSTSEC-0000-0000.md Outdated
id = "RUSTSEC-0000-0000"
package = "connectrpc"
date = "2026-09-21"
url = "https://github.com/connectrpc/connect-rust/security/advisories/GHSA-jx5x-3mcr-qp8r"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Prefer to have an issue/PR/commit as the primary URL here, since we already have the GHSA in aliases.

@iainmcgin
iainmcgin marked this pull request as ready for review September 22, 2026 23:10
…ming call

A client-streaming or bidirectional-streaming call that finishes before it has
consumed its request keeps a background reader on the request body with no
time limit, so a client that stalls mid-message holds a task, the buffered
partial message and the stream or connection until it disconnects. Fixed in
0.8.2 and 0.9.1.
@iainmcgin
iainmcgin force-pushed the connectrpc-stalled-body branch from be9a902 to 643861b Compare September 22, 2026 23:30
@djc
djc merged commit 153f42f into rustsec:main Sep 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants