{"id":"CVE-2026-53994","aliases":["DEBIAN-CVE-2026-53994","EUVD-2026-45396","GHSA-435f-wcrw-9x3x","OESA-2026-3231","SUSE-SU-2026:5181-1","UBUNTU-CVE-2026-53994"],"status":"published","title":"ProFTPD mod_sftp Heap Buffer Overflow via Unsigned Integer Underflow and Size Truncation","description":"ProFTPD mod_sftp contains a heap-based buffer overflow reachable by an authenticated SFTP user. The fxp_packet_read() function accepts the attacker-supplied 32-bit big-endian SFTP packet length without a minimum sanity check. A value of 0 causes an unsigned subtraction elsewhere in the read path to underflow to approximately 4 GB. That oversized request reaches the core memory allocator, where the rounded size is computed in size_t but passed to new_block() as a 32-bit int; the low 32 bits of 0x100000000 are 0, so new_block() returns a small (~512-byte) block while the caller is told it received ~4 GB. The subsequent fill loop then streams attacker-controlled bytes past the end of the 544-byte allocation, producing an attacker-controlled heap buffer overflow. An authenticated user can crash the per-connection ProFTPD session child on demand with a single malformed SFTP packet (packet_len=0 followed by a body greater than approximately 544 bytes), producing reliable authenticated remote denial of service. Depending on heap layout and adjacent allocations, heap metadata corruption and further consequences beyond denial of service may be possible, though only denial of service is demonstrated by the supplied proof of concept.","severity":{"version":"4.0","score":7.7,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-10","score":0.00448,"percentile":0.39273,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-122"],"published":"2026-07-18T19:30:32Z","modified":"2026-11-11T13:00:04Z","fixes":[{"ecosystem":"Debian:13","package":"proftpd-dfsg","fixed_in":["1.3.8.c+dfsg-4+deb13u3"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"proftpd-dfsg","fixed_in":["1.3.9b~dfsg-1"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Debian:12","package":"proftpd-dfsg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.3.8+dfsg-4","1.3.8+dfsg-4+deb12u1","1.3.8+dfsg-4+deb12u2","1.3.8+dfsg-4+deb12u3","1.3.8+dfsg-4+deb12u4","1.3.8+dfsg-4+deb12u5","1.3.8+dfsg-5","1.3.8+dfsg-6","1.3.8+dfsg-7","1.3.8+dfsg-8","1.3.8.a+dfsg-1","1.3.8.b+dfsg-1","1.3.8.b+dfsg-2","1.3.8.b+dfsg-3","1.3.8.b+dfsg-4","1.3.8.c+dfsg-1","1.3.8.c+dfsg-2","1.3.8.c+dfsg-3","1.3.8.c+dfsg-4","1.3.9a~dfsg-1","1.3.9b~dfsg-1","1.3.9c~dfsg-1","1.3.9d~dfsg-1","1.3.9e~dfsg-1","1.3.9e~dfsg-2","1.3.9e~dfsg-3","1.3.9~dfsg-1","1.3.9~dfsg-2","1.3.9~dfsg-3","1.3.9~dfsg-4","1.3.9~dfsg-5"]},{"source":"osv","ecosystem":"Debian:13","package":"proftpd-dfsg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.8.c+dfsg-4+deb13u3"}]}],"versions":["1.3.8.c+dfsg-4","1.3.8.c+dfsg-4+deb13u1","1.3.8.c+dfsg-4+deb13u2"]},{"source":"osv","ecosystem":"Debian:14","package":"proftpd-dfsg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.9b~dfsg-1"}]}],"versions":["1.3.8.c+dfsg-4","1.3.9a~dfsg-1","1.3.9~dfsg-1","1.3.9~dfsg-2","1.3.9~dfsg-3","1.3.9~dfsg-4","1.3.9~dfsg-5"]},{"source":"osv","ecosystem":"openEuler:20.03-LTS-SP4","package":"proftpd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.8b-7.oe2003sp4"}]}],"bundled":3},{"source":"osv","ecosystem":"openEuler:22.03-LTS-SP4","package":"proftpd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.9a-3.oe2203sp4"}]}],"bundled":3},{"source":"osv","ecosystem":"openEuler:24.03-LTS-SP1","package":"proftpd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.9a-3.oe2403sp1"}]}],"bundled":3},{"source":"osv","ecosystem":"openEuler:24.03-LTS-SP3","package":"proftpd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.9a-3.oe2403sp3"}]}],"bundled":3},{"source":"osv","ecosystem":"openEuler:24.03-LTS-SP4","package":"proftpd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.9a-3.oe2403sp4"}]}],"bundled":3},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Module for Server Applications 15 SP7","package":"proftpd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.8b-150600.13.18.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server 15 SP6-LTSS","package":"proftpd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.8b-150600.13.18.1"}]}],"bundled":7},{"source":"osv","ecosystem":"SUSE:Linux Enterprise Server for SAP Applications 15 SP6","package":"proftpd","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.8b-150600.13.18.1"}]}],"bundled":7},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"proftpd-dfsg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.3.5-2","1.3.5a-1","1.3.5a-1build1","1.3.5a-1ubuntu0.1"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"proftpd-dfsg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.3.5d-1","1.3.5e-1build1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"proftpd-dfsg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.3.6-6build2","1.3.6c-1","1.3.6c-2","1.3.6c-2ubuntu0.1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"proftpd-dfsg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.3.7b+dfsg-1","1.3.7c+dfsg-1build1","1.3.7c+dfsg-1ubuntu0.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"proftpd-dfsg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.3.8+dfsg-8","1.3.8.a+dfsg-1","1.3.8.b+dfsg-1","1.3.8.b+dfsg-1build1","1.3.8.b+dfsg-1build2","1.3.8.b+dfsg-1build3","1.3.8.b+dfsg-1ubuntu0.1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"proftpd-dfsg","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.3.9~dfsg-3","1.3.9~dfsg-4"]}],"products":[{"vendor":"proftpd","product":"proftpd"},{"vendor":"proftpd project","product":"proftpd"}],"references":[{"url":"https://github.com/proftpd/proftpd","tags":["product","Product","package"]},{"url":"https://github.com/proftpd/proftpd/commit/7342836fa98e36209660a4c5805c801476f63936","tags":["patch","Patch","fix"]},{"url":"https://www.vulncheck.com/advisories/proftpd-mod-sftp-heap-buffer-overflow-via-unsigned-integer-underflow-and-size-truncation","tags":["third-party-advisory","Patch","Third Party Advisory","advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-53994","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-435f-wcrw-9x3x"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/53xxx/CVE-2026-53994.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-53994","tags":["advisory"]},{"url":"https://www.openeuler.org/zh/security/security-bulletins/detail/?id=openEuler-SA-2026-3231","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-63090","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-63091","tags":["advisory"]},{"url":"https://www.suse.com/support/update/announcement/2026/suse-su-20265181-1/","tags":["advisory"]},{"url":"https://bugzilla.suse.com/1263183","tags":["report"]},{"url":"https://bugzilla.suse.com/1264262","tags":["report"]},{"url":"https://bugzilla.suse.com/1269065","tags":["report"]},{"url":"https://bugzilla.suse.com/1271096","tags":["report"]},{"url":"https://bugzilla.suse.com/1271097","tags":["report"]},{"url":"https://bugzilla.suse.com/1271944","tags":["report"]},{"url":"https://bugzilla.suse.com/1271945","tags":["report"]},{"url":"https://bugzilla.suse.com/1271946","tags":["report"]},{"url":"https://bugzilla.suse.com/1289272","tags":["report"]},{"url":"https://www.suse.com/security/cve/CVE-2026-119147","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-35025","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-42167","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-44331","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-53994","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-63090","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-63091","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2026-53994","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-53994","tags":["report"]},{"url":"https://github.com/proftpd/proftpd/issues/2115","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-53994","title":"ProFTPD mod_sftp Heap Buffer Overflow via Unsigned Integer Underflow and Size Truncation","description":"ProFTPD mod_sftp contains a heap-based buffer overflow reachable by an authenticated SFTP user. The fxp_packet_read() function accepts the attacker-supplied 32-bit big-endian SFTP packet length without a minimum sanity check. A value of 0 causes an unsigned subtraction elsewhere in the read path to underflow to approximately 4 GB. That oversized request reaches the core memory allocator, where the rounded size is computed in size_t but passed to new_block() as a 32-bit int; the low 32 bits of 0x100000000 are 0, so new_block() returns a small (~512-byte) block while the caller is told it received ~4 GB. The subsequent fill loop then streams attacker-controlled bytes past the end of the 544-byte allocation, producing an attacker-controlled heap buffer overflow. An authenticated user can crash the per-connection ProFTPD session child on demand with a single malformed SFTP packet (packet_len=0 followed by a body greater than approximately 544 bytes), producing reliable authenticated remote denial of service. Depending on heap layout and adjacent allocations, heap metadata corruption and further consequences beyond denial of service may be possible, though only denial of service is demonstrated by the supplied proof of concept.","status":"published","published":"2026-07-18T19:30:32.74Z","modified":"2026-07-28T01:49:40.378Z","cvss":[{"version":"4.0","score":7.7,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"cna"}],"cwes":["CWE-122"],"updated_at":"2026-11-02T14:19:59.761005Z"}],"euvd":[{"id":"EUVD-2026-45396","description":"ProFTPD mod_sftp contains a heap-based buffer overflow reachable by an authenticated SFTP user. The fxp_packet_read() function accepts the attacker-supplied 32-bit big-endian SFTP packet length without a minimum sanity check. A value of 0 causes an unsigned subtraction elsewhere in the read path to underflow to approximately 4 GB. That oversized request reaches the core memory allocator, where the rounded size is computed in size_t but passed to new_block() as a 32-bit int; the low 32 bits of 0x100000000 are 0, so new_block() returns a small (~512-byte) block while the caller is told it received ~4 GB. The subsequent fill loop then streams attacker-controlled bytes past the end of the 544-byte allocation, producing an attacker-controlled heap buffer overflow. An authenticated user can crash the per-connection ProFTPD session child on demand with a single malformed SFTP packet (packet_len=0 followed by a body greater than approximately 544 bytes), producing reliable authenticated remote denial of service. Depending on heap layout and adjacent allocations, heap metadata corruption and further consequences beyond denial of service may be possible, though only denial of service is demonstrated by the supplied proof of concept.","status":"published","published":"2026-07-18T19:30:32Z","modified":"2026-07-28T01:49:40Z","cvss":[{"version":"4.0","score":7.7,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T18:02:32.258903Z"}],"ghsa":[{"id":"GHSA-435f-wcrw-9x3x","title":"ProFTPD mod_sftp contains a heap-based buffer overflow reachable by an authenticated SFTP user....","description":"ProFTPD mod_sftp contains a heap-based buffer overflow reachable by an authenticated SFTP user. The fxp_packet_read() function accepts the attacker-supplied 32-bit big-endian SFTP packet length without a minimum sanity check. A value of 0 causes an unsigned subtraction elsewhere in the read path to underflow to approximately 4 GB. That oversized request reaches the core memory allocator, where the rounded size is computed in size_t but passed to new_block() as a 32-bit int; the low 32 bits of 0x100000000 are 0, so new_block() returns a small (~512-byte) block while the caller is told it received ~4 GB. The subsequent fill loop then streams attacker-controlled bytes past the end of the 544-byte allocation, producing an attacker-controlled heap buffer overflow. An authenticated user can crash the per-connection ProFTPD session child on demand with a single malformed SFTP packet (packet_len=0 followed by a body greater than approximately 544 bytes), producing reliable authenticated remote denial of service. Depending on heap layout and adjacent allocations, heap metadata corruption and further consequences beyond denial of service may be possible, though only denial of service is demonstrated by the supplied proof of concept.","status":"published","published":"2026-07-18T21:30:24Z","modified":"2026-07-18T21:30:24Z","cvss":[{"version":"4.0","score":7.7,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/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","level":"high"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"cwes":["CWE-122"],"updated_at":"2026-11-02T15:09:35.806108Z"}],"nvd":[{"id":"CVE-2026-53994","description":"ProFTPD mod_sftp contains a heap-based buffer overflow reachable by an authenticated SFTP user. The fxp_packet_read() function accepts the attacker-supplied 32-bit big-endian SFTP packet length without a minimum sanity check. A value of 0 causes an unsigned subtraction elsewhere in the read path to underflow to approximately 4 GB. That oversized request reaches the core memory allocator, where the rounded size is computed in size_t but passed to new_block() as a 32-bit int; the low 32 bits of 0x100000000 are 0, so new_block() returns a small (~512-byte) block while the caller is told it received ~4 GB. The subsequent fill loop then streams attacker-controlled bytes past the end of the 544-byte allocation, producing an attacker-controlled heap buffer overflow. An authenticated user can crash the per-connection ProFTPD session child on demand with a single malformed SFTP packet (packet_len=0 followed by a body greater than approximately 544 bytes), producing reliable authenticated remote denial of service. Depending on heap layout and adjacent allocations, heap metadata corruption and further consequences beyond denial of service may be possible, though only denial of service is demonstrated by the supplied proof of concept.","status":"published","published":"2026-07-18T20:17:30.283Z","modified":"2026-11-05T19:56:25.753Z","cvss":[{"version":"4.0","score":7.7,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/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","level":"high","assessor":"secondary"},{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high","assessor":"secondary"},{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium","assessor":"primary"}],"cwes":["CWE-122"],"updated_at":"2026-11-05T21:56:41.836249Z"}],"osv":[{"id":"CVE-2026-53994","title":"ProFTPD mod_sftp Heap Buffer Overflow via Unsigned Integer Underflow and Size Truncation","description":"ProFTPD mod_sftp contains a heap-based buffer overflow reachable by an authenticated SFTP user. The fxp_packet_read() function accepts the attacker-supplied 32-bit big-endian SFTP packet length without a minimum sanity check. A value of 0 causes an unsigned subtraction elsewhere in the read path to underflow to approximately 4 GB. That oversized request reaches the core memory allocator, where the rounded size is computed in size_t but passed to new_block() as a 32-bit int; the low 32 bits of 0x100000000 are 0, so new_block() returns a small (~512-byte) block while the caller is told it received ~4 GB. The subsequent fill loop then streams attacker-controlled bytes past the end of the 544-byte allocation, producing an attacker-controlled heap buffer overflow. An authenticated user can crash the per-connection ProFTPD session child on demand with a single malformed SFTP packet (packet_len=0 followed by a body greater than approximately 544 bytes), producing reliable authenticated remote denial of service. Depending on heap layout and adjacent allocations, heap metadata corruption and further consequences beyond denial of service may be possible, though only denial of service is demonstrated by the supplied proof of concept.","status":"published","published":"2026-07-18T19:30:32.74Z","modified":"2026-11-11T13:12:15.487174298Z","cvss":[{"version":"4.0","score":7.7,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-122"],"updated_at":"2026-11-07T03:08:07.221269Z"},{"id":"DEBIAN-CVE-2026-53994","description":"ProFTPD mod_sftp contains a heap-based buffer overflow reachable by an authenticated SFTP user. The fxp_packet_read() function accepts the attacker-supplied 32-bit big-endian SFTP packet length without a minimum sanity check. A value of 0 causes an unsigned subtraction elsewhere in the read path to underflow to approximately 4 GB. That oversized request reaches the core memory allocator, where the rounded size is computed in size_t but passed to new_block() as a 32-bit int; the low 32 bits of 0x100000000 are 0, so new_block() returns a small (~512-byte) block while the caller is told it received ~4 GB. The subsequent fill loop then streams attacker-controlled bytes past the end of the 544-byte allocation, producing an attacker-controlled heap buffer overflow. An authenticated user can crash the per-connection ProFTPD session child on demand with a single malformed SFTP packet (packet_len=0 followed by a body greater than approximately 544 bytes), producing reliable authenticated remote denial of service. Depending on heap layout and adjacent allocations, heap metadata corruption and further consequences beyond denial of service may be possible, though only denial of service is demonstrated by the supplied proof of concept.","status":"published","published":"2026-07-18T20:17:30.283Z","modified":"2026-11-06T10:04:41.262316221Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"}],"updated_at":"2026-11-06T10:38:22.758306Z"},{"id":"OESA-2026-3231","title":"proftpd security update","description":"ProFTPD is an enhanced FTP server with a focus toward simplicity, security, and ease of configuration. It features a very Apache-like configuration syntax, and a highly customizable server infrastructure, including support for multiple \u0026amp;apos;virtual\u0026amp;apos; FTP servers, anonymous FTP, and permission-based directory visibility. This package defaults to the standalone behavior of ProFTPD, but all the needed scripts to have it run by systemd instead are included.\r\n\r\nSecurity Fix(es):\n\nProFTPD mod_sftp contains a heap-based buffer overflow reachable by an authenticated SFTP user. The fxp_packet_read() function accepts the attacker-supplied 32-bit big-endian SFTP packet length without a minimum sanity check. A value of 0 causes an unsigned subtraction elsewhere in the read path to underflow to approximately 4 GB. That oversized request reaches the core memory allocator, where the rounded size is computed in size_t but passed to new_block() as a 32-bit int; the low 32 bits of 0x100000000 are 0, so new_block() returns a small (~512-byte) block while the caller is told it received ~4 GB. The subsequent fill loop then streams attacker-controlled bytes past the end of the 544-byte allocation, producing an attacker-controlled heap buffer overflow. An authenticated user can crash the per-connection ProFTPD session child on demand with a single malformed SFTP packet (packet_len=0 followed by a body greater than approximately 544 bytes), producing reliable authenticated remote denial of service. Depending on heap layout and adjacent allocations, heap metadata corruption and further consequences beyond denial of service may be possible, though only denial of service is demonstrated by the supplied proof of concept.(CVE-2026-53994)\n\nProFTPD before 1.3.9c and 1.3.10rc3 contains a heap-based buffer overflow vulnerability in the mod_sftp module that allows authenticated low-privilege attackers to achieve arbitrary code execution by sending crafted SFTP packet fragments exceeding the 16 KB reassembly buffer in the fxp.c component. Attackers can supply oversized fragments to trigger an incorrectly conditioned reallocation, corrupt pool freelist metadata, overwrite the root_fs BSS global pointer to reference a fake filesystem struct, and redirect pr_fsio_stat() to system() via a crafted RENAME request.(CVE-2026-63090)\n\nProFTPD before 1.3.9c and 1.3.10rc3 contains a signed integer overflow vulnerability in the mod_sftp module\u0026apos;s SCP size-record parser that allows authenticated low-privilege attackers to bypass ASLR by sending a crafted file size value of UINT64_MAX, which results in a negative off_t value. Attackers can exploit the subsequent conversion to uint32_t, causing an approximately 4 GB requested read length and forcing the server to read beyond the end of the SSH channel data and write overread process memory into the uploaded file. In tested configurations, the disclosed data contains libc, libcrypto, and PIE pointers sufficient to derive their randomized base addresses, thereby bypassing ASLR and enabling reliable exploitation of memory corruption vulnerabilities in the same process.(CVE-2026-63091)","status":"published","published":"2026-08-01T11:12:06Z","modified":"2026-08-18T01:21:27.76581573Z","cvss":[{"version":"3.1","score":8.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"}],"updated_at":"2026-11-02T15:52:46.823443Z"},{"id":"UBUNTU-CVE-2026-53994","description":"ProFTPD mod_sftp contains a heap-based buffer overflow reachable by an authenticated SFTP user. The fxp_packet_read() function accepts the attacker-supplied 32-bit big-endian SFTP packet length without a minimum sanity check. A value of 0 causes an unsigned subtraction elsewhere in the read path to underflow to approximately 4 GB. That oversized request reaches the core memory allocator, where the rounded size is computed in size_t but passed to new_block() as a 32-bit int; the low 32 bits of 0x100000000 are 0, so new_block() returns a small (~512-byte) block while the caller is told it received ~4 GB. The subsequent fill loop then streams attacker-controlled bytes past the end of the 544-byte allocation, producing an attacker-controlled heap buffer overflow. An authenticated user can crash the per-connection ProFTPD session child on demand with a single malformed SFTP packet (packet_len=0 followed by a body greater than approximately 544 bytes), producing reliable authenticated remote denial of service. Depending on heap layout and adjacent allocations, heap metadata corruption and further consequences beyond denial of service may be possible, though only denial of service is demonstrated by the supplied proof of concept.","status":"published","published":"2026-07-18T20:17:00Z","modified":"2026-08-04T11:00:09.648681725Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H","level":"high"},{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","level":"medium"},{"version":"4.0","score":7.7,"vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T16:56:41.382716Z"},{"id":"SUSE-SU-2026:5181-1","title":"Security update for proftpd","description":"This update for proftpd fixes the following issues:\n\n- Authenticated SFTP sessions can overflow the SFTP packet buffer (bsc#1271096).\n- CVE-2026-35025: access control bypass allows authenticated FTP users to circumvent Directory ACL restrictions by\n  prefixing paths with `/proc/self/root` in the RNFR command handler (bsc#1269065).\n- CVE-2026-42167: `mod_sql` allows remote attackers to execute arbitrary code via a username when there is logging of\n  `USER` requests with an expansion such as `%U` and the SQL backend allows `comman` (bsc#1263183).\n- CVE-2026-44331: SQL injection in `sqltab_fetch_clients_cb()` in `contrib/mod_wrap2_sql.c` triggered via crafted domain\n  name from reverse DNS lookup (bsc#1264262).\n- CVE-2026-53994: heap-based buffer overflow reachable by an authenticated SFTP user can lead to denial of service and\n  memory corruption (bsc#1271946).\n- CVE-2026-63090: heap-based buffer overflow in the `mod_sftp` module can lead to arbitrary code execution via crafted\n  SFTP packet fragments (bsc#1271944).\n- CVE-2026-63091: signed integer overflow in the `mod_sftp` module's SCP size-record parser can lead to ASLR bypass via\n  a crafted file size value of `UINT64_MAX` (bsc#1271945).\n- CVE-2026-119147: authorization bypass in the `mod_sftp` copy-file extension handler allows SFTP users to copy any\n  readable file to a new path in write-denied directories (bsc#1289272).\n- Integer overflow via client-provided file size for SCP uploads (bsc#1271097).\n","status":"published","published":"2026-11-10T17:39:43Z","modified":"2026-11-11T13:00:04.395234588Z","updated_at":"2026-11-11T13:08:46.301371Z"}]}}
