AsyncSSH: SFTPServer Chroot Escape
Description
AsyncSSH is a Python package which provides an asynchronous client and server implementation of the SSHv2 protocol on top of the Python asyncio framework. Prior to 2.24.1, SFTPServer.map_path() uses posixpath.normpath() on a client-supplied path and removes only one leading slash before passing the result to posixpath.join() with the configured chroot. An authenticated SFTP user can supply a path beginning with exactly two slash characters, causing POSIX normalization to preserve the double-leading-slash form and the subsequent join to treat the remaining pathname as absolute. This bypasses the SFTP chroot and permits reads and writes with the operating-system permissions of the account running the server, which may enable code execution depending on writable targets. This issue is fixed in version 2.24.1.
Affected products
1- Range: <2.24.1
Patches
Vulnerability mechanics
References
3- github.com/ronf/asyncssh/commit/d4fc430d37b234cb35f1ba2cca834b2dbe1302cfmitrex_refsource_MISC
- github.com/ronf/asyncssh/releases/tag/v2.24.1mitrex_refsource_MISC
- github.com/ronf/asyncssh/security/advisories/GHSA-w29m-45fc-22v9mitrex_refsource_CONFIRM
News mentions
0No linked articles in our index yet.