{"id":"CVE-2026-116775","kind":"vulnerability","aliases":["CVE-2026-116775"],"related":[],"title":"pageant Rust crate: unchecked length prefix lets a peer exhaust client memory","description":"pageant provides a PageantStream type that implements AsyncRead and AsyncWrite traits and can be used to communicate with a running Pageant instance. From 0.2.0 until 0.2.5, PageantStream::new in pageant/src/wmmessage.rs trusts a peer-controlled four-byte length prefix and buffers until len + 4 bytes are available without checking the fixed _AGENT_MAX_MSGLEN transport capacity. An application that bridges an SSH forwarded-agent channel to the raw stream can allow a malicious server to force large allocations or retain a partially filled frame, causing client memory exhaustion. This issue is fixed in version 0.2.5.","summary":"The pageant Rust crate's PageantStream trusts a four-byte length prefix sent by the peer and buffers until that many bytes arrive, without checking the fixed agent message size limit. A malicious SSH server reached through a forwarded-agent bridge can force large allocations or hold partial frames, exhausting client memory.","severity":"low","cvss":2.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["package","pageant","rust","ssh"],"not_affected_if":["not-using-pageant-crate","version-outside-0.2.0-to-0.2.4"],"how_to_check":"- Run `cargo tree -i pageant` in the project to see whether the pageant crate is present and which version is resolved.\n- Check Cargo.lock for a `pageant` entry with a version between `0.2.0` and `0.2.4`.","fix":"- Upgrade the pageant crate to `0.2.5` or later.","status":"open","published_at":"2026-10-27T21:18:06+00:00","first_seen_at":"2026-10-27T21:29:22+00:00","triaged_at":"2026-10-27T21:30:25+00:00","updated_at":"2026-10-27T21:30:25+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-27T21:30:25Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade the pageant crate to `0.2.5` or later.","reach":"network","title":"pageant Rust crate: unchecked length prefix lets a peer exhaust client memory","impact":"low","summary":"The pageant Rust crate's PageantStream trusts a four-byte length prefix sent by the peer and buffers until that many bytes arrive, without checking the fixed agent message size limit. A malicious SSH server reached through a forwarded-agent bridge can force large allocations or hold partial frames, exhausting client memory.","category":"package","nicknames":[],"who_cares":["rust","ssh","pageant"],"confidence":0.7,"needs_auth":"unknown","worst_case":"A malicious SSH server causes client memory exhaustion and denial of service.","analyst_note":"","how_to_check":"- Run `cargo tree -i pageant` in the project to see whether the pageant crate is present and which version is resolved.\n- Check Cargo.lock for a `pageant` entry with a version between `0.2.0` and `0.2.4`.","needs_analyst":false,"not_affected_if":["not-using-pageant-crate","version-outside-0.2.0-to-0.2.4"],"who_is_affected":"Only applications that use pageant's PageantStream to bridge an SSH forwarded-agent channel to a raw stream are described as affected, and the flaw applies to versions from 0.2.0 through 0.2.5. Teams that do not depend on the pageant crate, or that run only versions outside that range, can skip it. The sources do not say whether other bridge code paths are exposed.","user_interaction":"unknown","needs_special_setup":"yes","severity_if_unknown":"low"},"cost_usd":0.000635,"input_tokens":3445,"output_tokens":581,"severity_before":"low"},"analyst_status":null,"analyst_note":null,"search":"'-116775':15A,18A '-2026':14A,17A '0.2.0':100C '0.2.5':102C,173C '4':121C 'agent':51B,64B,129C,142C 'alloc':69B,156C 'allow':149C 'applic':135C 'arriv':46B 'asyncread':84C 'asyncwrit':86C 'avail':124C 'bridg':65B,137C 'buffer':41B,118C 'byte':33B,45B,114C,122C 'capac':133C 'caus':163C 'channel':143C 'check':48B,126C 'client':11A,75B,164C 'communic':93C 'control':111C 'crate':3A,26B 'cve':13A,16A 'exhaust':10A,74B,166C 'fill':161C 'fix':50B,128C,170C 'forc':67B,154C 'forward':63B,141C 'forwarded-ag':62B,140C 'four':32B,113C 'four-byt':31B,112C 'frame':73B,162C 'hold':71B 'implement':83C 'instanc':98C 'issu':168C 'larg':68B,155C 'len':120C 'length':5A,34B,115C 'let':7A 'limit':54B 'malici':56B,151C 'mani':44B 'max':130C 'memori':12A,76B,165C 'messag':52B 'msglen':131C 'new':104C 'packag':19B 'pageant':1A,20B,24B,77C,97C 'pageant/src/wmmessage.rs':106C 'pageantstream':28B,80C,103C 'partial':72B,160C 'peer':9A,39B,110C 'peer-control':109C 'prefix':6A,35B,116C 'provid':78C 'raw':146C 'reach':59B 'retain':158C 'run':96C 'rust':2A,21B,25B 'sent':36B 'server':58B,152C 'size':53B 'ssh':22B,57B,139C 'stream':147C 'trait':87C 'transport':132C 'trust':29B,107C 'type':81C 'uncheck':4A 'use':91C 'version':172C 'without':47B,125C","nicknames":[],"mitigations":[],"who_affected":"Only applications that use pageant's PageantStream to bridge an SSH forwarded-agent channel to a raw stream are described as affected, and the flaw applies to versions from 0.2.0 through 0.2.5. Teams that do not depend on the pageant crate, or that run only versions outside that range, can skip it. The sources do not say whether other bridge code paths are exposed.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-27T21:18:06+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-116775","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-116775","severity":null,"published_at":"2026-10-27T21:18:06+00:00","modified_at":"2026-10-27T21:18:06+00:00","first_seen_at":"2026-10-27T21:29:22+00:00","fetched_at":"2026-10-27T21:29:22+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"}