PuTTY vulnerability pageant-deferred-decryption-uaf

This is a mirror. Follow this link to find the primary PuTTY web site.

Home | FAQ | Feedback | Licence | Updates | Mirrors | Keys | Links | Team
Download: Stable · Snapshot | Docs | Privacy | Changes | Wishlist

summary: Pageant accesses freed memory if a key is deleted while its passphrase prompt is in progress
class: vulnerability: This is a security vulnerability.
absent-in: 4d05eb424d521ce00a84063d4862d8e7aabcd50a
present-in: d8337e20700ce7fb790a377fc14ac17a22f3b183
fixed-in: 17582178e62fb267282427f1b43147f67c9afaae (0.85)

In version 0.75, Pageant acquired the ability to store a private key still encrypted, and when a client first attempts to use the key, display a prompt for the passphrase.

If that passphrase prompt is still in progress, and another client of Pageant deletes the key from the agent, then when the user finishes entering a passphrase at the prompt, Pageant will access freed memory, and probably crash.

This is a vulnerability, because a use-after-free bug could cause uncontrolled behaviour, including leaks of private material.

A malicious SSH server could attempt to provoke this bug using agent forwarding, by noticing the presence of a still-encrypted key using Pageant's extended key list command, and then issuing signing and deletion requests in quick succession. They can do this even if you were not using the deferred decryption feature yourself, by first sending a request to add an encrypted PPK file to the agent.

There's a possibility that, by following those requests with further requests to load a key, the attacker could also cause Pageant to reuse the freed memory with data of its choice. So this could be a more serious vulnerability than a DoS.

If so, then you aren't safe just because you don't use deferred decryption. A malicious user who can access Pageant over agent forwarding could also load an encrypted key into Pageant simply in order to try to catch you out with this vulnerability!

This vulnerability was reported by Yazdan Soltani.


If you want to comment on this web site, see the Feedback page.
Audit trail for this vulnerability.
(last revision of this bug record was at 2026-08-16 13:39:29 +0100)