Out-of-Bounds Read in pageant (CVE-2026-102820)
Summary
Vulnerability in pageant (CVE-2026-102820). Risk of unauthorized operations or information disclosure. Exploitable via pageant. Mitigation: upgrade to 0.2.3 or later.
Original description
The description as published by the source.
Summary
MemoryMap::read in the pageant crate (part of the russh workspace, used by
russh's SSH-agent client on Windows via AgentClient::connect_pageant) copies a
peer-controlled number of bytes out of an 8192-byte shared-memory view with
no bounds check — unlike the sibling MemoryMap::write, which correctly
rejects oversize access with Error::Overflow. The byte count comes straight
from a u32 length prefix that the responding "Pageant" process writes into the
shared mapping. A malicious local process that answers as the Pageant agent can
therefore cause:
- an out-of-bounds read past the 8 KiB view (access violation → process
crash; or disclosure of adjacent process memory if the following page is
committed) - an allocation of up to ~4 GiB from a single
u32(vec![0; n]).
This was reproduced end-to-end against the real, unmodified pageant crate
(not a model) on x86_64-pc-windows-gnu under Wine; see "Proof of concept".
Impact
- Availability / DoS (reliable).
MemoryMap::read(size)walks off the end of
the 8192-byte view and faults on the next, unmapped page — an
EXCEPTION_ACCESS_VIOLATIONthat crashes the russh SSH client. Independently,
asizenearu32::MAXdrives a ~4 GiBvec![0; n]before any copy. - Confidentiality (conditional). If memory immediately after the mapped view
happens to be committed,readreturns those adjacent bytes to russh as the
"agent response", which russh then parses as a…
Source: NIST National Vulnerability Database NVD GitHub Advisory
Auto-generated summary
Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.
A vulnerability tracked as CVE-2026-102820 has been found in pageant.
Attackers can target a specific entry point like pageant over the network to misuse the product.
Risk of unauthorized operations or information disclosure. CVSS score: 6.2/10.
What to do: upgrade pageant to 0.2.3 or later.
If unsure, ask your IT team or search "pageant CVE-2026-102820" on the vendor's site.
CVE-2026-102820 (pageant) — CWE-125 / CVSS v3 6.2
Attack vector: local / unauthenticated / no user interaction
Attack surface: pageant / u32 / EXCEPTION_ACCESS_VIOLATION / size
Patched: 0.2.3 — apply immediately
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.
Out-of-bounds read (CWE-125) exists in pageant. Attackers reach the vulnerable code path via pageant without authentication.
Check the vendor advisory for the affected versions of pageant. Attack surface: pageant / u32 / EXCEPTION_ACCESS_VIOLATION / size.
Severity: Medium (CVSS 6.2/10). Risk of unauthorized operations or information disclosure.
Update to 0.2.3.
Until the patch is applied: disable the affected feature, apply WAF rules, or restrict access via network ACLs.
Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'pageant' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
grep -r 'pageant' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
pageantを grep し、稼働しているサービス・バージョンを把握する。 -
2Apply patch patch
Upgrade pageant to 0.2.3ステージング環境で 0.2.3 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。
-
3Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Affected packages
References
- web github.com
- web github.com
- web github.com
- web nvd.nist.gov
- web github.com