# CVE-2026-53994: ProFTPD mod_sftp Heap Buffer Overflow via Unsigned Integer Underflow and Size Truncation

> An authenticated SFTP user can trigger a heap buffer overflow in ProFTPD, causing a denial of service via a malformed packet.

- **Severity:** High 7.7 (`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`)
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 18 Jul 2026
- **Updated:** 28 Jul 2026
- **Also known as:** DEBIAN-CVE-2026-53994, GHSA-435f-wcrw-9x3x, UBUNTU-CVE-2026-53994

## What is CVE-2026-53994?

CVE-2026-53994 is a high-severity memory corruption vulnerability in ProFTPD, published on 18 Jul 2026. Any signed-in user can exploit it over the network, with no action from the victim.

### Official 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.

Weakness: CWE-122 (Heap-based Buffer Overflow)

## Which versions are affected by CVE-2026-53994?

It affects 1 product.


Products: Proftpd Proftpd.

## How do I fix CVE-2026-53994?

Apply the vendor's patch.

## Is CVE-2026-53994 being exploited?

There is no known exploitation of CVE-2026-53994 in the wild and no public exploit code.

## Other vulnerabilities in ProFTPD

- [CVE-2010-4221](https://insights.sbomify.com/CVE-2010-4221/): Memory corruption in n/a (critical 10.0)
- [CVE-2010-20103](https://insights.sbomify.com/CVE-2010-20103/): ProFTPD 1.3.3c Backdoor Command Execution (critical 9.3)
- [CVE-2011-4130](https://insights.sbomify.com/CVE-2011-4130/): Use after free in n/a (critical 9.0)
- [CVE-2026-63090](https://insights.sbomify.com/CVE-2026-63090/): ProFTPD mod_sftp Heap Buffer Overflow via SFTP Packet Reassembly (high 8.7)
- [CVE-2026-35025](https://insights.sbomify.com/CVE-2026-35025/): ProFTPD ACL Bypass via /proc/self/root Path Prefix in RNFR (high 8.6)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-53994 and fix it if it is affected.

What it is: CVE-2026-53994 is a high-severity memory corruption vulnerability in ProFTPD, published on 18 Jul 2026. Any signed-in user can exploit it over the network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-53994 in the wild and no public exploit code.

Affected product: ProFTPD. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-53994/ (Markdown: https://insights.sbomify.com/CVE-2026-53994/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-53994
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-53994
- OSV: https://osv.dev/vulnerability/CVE-2026-53994

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-53994/
Summaries are generated and may contain mistakes; the official description above is the record.
