Skip to content

fix: what a pane prints is bounded in the server's memory and time - #182

Merged
nyxene merged 1 commit into
masterfrom
ghsa/8-f1-m
Nov 7, 2026
Merged

nyxene merged 1 commit into
masterfrom
ghsa/8-f1-m

Conversation

@nyxene

@nyxene nyxene commented Nov 7, 2026

Copy link
Copy Markdown
Contributor

Security fixes, merged in order with the other ghsa/ steps.

  • fix: what a pane prints is bounded in the server's memory and time

Part of #177

🤖 Generated with Claude Code

- term/bounds.rs: a byte filter in front of vte keeps an OSC to 4096 characters or 16 KiB, cuts a REP to the pane's width, and marks where vte begins and ends a synchronized update
- term/bounds.rs: a Handler guard keeps at most 30 zero-width chars per cell, an 8-deep title stack and no OSC 8 links, and runs a back tab one pass at a time
- term.rs: vte never buffers an update; Term holds it, up to 2 MiB, until it ends or 150 ms pass, and parses its queue in 512-byte slices against a deadline; an update released at its end has two budgets to be drawn whole
- term.rs: a character cut between slices or chunks has its rest parsed alone, so vte 0.15 drops nothing after it
- app: a pane gives way between slices once the round's 4 ms are spent, takes no next chunk past it, and answers a chunk once its last slice is parsed; tick_states releases an update open for 150 ms
- app: a pane whose program exited closes once its output is parsed, or 2 s after the exit without the rest; the Update and exit drains share a 1 s deadline
- log.rs: warn_every; one line at most every 10 s names the pane and the caps that fired
- Cargo.toml: unicode-width, already in the tree as alacritty_terminal's width table
- docs/privacy-and-security.md: what a pane's output is bounded by

Part of GHSA-jm7r-xvgg-4wq8
Closes #173

Co-Authored-By: Claude <noreply@anthropic.com>
@nyxene
nyxene merged commit 126df17 into master Nov 7, 2026
1 check passed
@nyxene
nyxene deleted the ghsa/8-f1-m branch November 7, 2026 20:26
nyxene pushed a commit that referenced this pull request Nov 7, 2026
Release pull request, maintained by release-please. Merging it creates
the tag and a draft GitHub release; then run `scripts/publish-binary.sh
vX.Y.Z` from a terminal to attach the macOS binary and publish the
release.
---


## [0.19.1](v0.19.0...v0.19.1)
(2026-11-07)


### Fixed

* a preview picture goes while the notice card is drawn over it
([#169](#169))
([6ca3a7f](6ca3a7f))
* caches whose contents run later stay read-only in a pane isolated to
its folder ([#176](#176))
([dda6fdb](dda6fdb))
* Check for a new release leaves a release already installed to Update
([#175](#175))
([7552294](7552294))
* isolated panes cannot ask macOS to start programs, and Ctrl+click
opens files only in an app chosen at the click
([#181](#181))
([02d8db3](02d8db3))
* only the release commit is signed, and an installer refuses a nerd of
another version ([#178](#178))
([a74be79](a74be79))
* Servers says why a machine cannot be listed, and offers a terminal
only when ssh wanted a prompt
([#171](#171))
([5519b1e](5519b1e))
* the server's sockets, files, ssh and typed messages hold their limits
when a pane pushes on them
([#180](#180))
([6bcc4cf](6bcc4cf))
* what a pane prints is bounded in the server's memory and time
([#182](#182))
([126df17](126df17))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

1 participant