CVE-2026-45699
Netatalk has Integer Underflow → Stack Buffer Overflow in copydir()
Netatalk is a Free and Open Source file server suite for Unix-like operating systems. In versions 3.1.19 through 4.4.2, a stack-based buffer overflow exists in the copydir() function of Netatalk's afpd daemon due to an integer underflow in the calculation of the remaining buffer size used for path construction. copydir() is a utility function called when a file operation crosses a device boundary inside an AFP shared volume, which the standard library's renameat() cannot handle. The function attempts to track available buffer space using srem and drem for source and destination paths. Incorrect arithmetic causes both srem and drem to underflow to SIZE_MAX. Consequently, boundary checks against strlen(de->d_name) always pass, allowing strcpy() to append filenames into nearly full stack buffers. Version 4.4.3 patches the issue. As a workaround, configure each AFP shared volume to be structured as a single file system, in other words no subdirectory of a shared volume should be a mount point for a different file system.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
Netatalk has Integer Underflow → Stack Buffer Overflow in copydir()
Netatalk is a Free and Open Source file server suite for Unix-like operating systems. In versions 3.1.19 through 4.4.2, a stack-based buffer overflow exists in the copydir() function of Netatalk's afpd daemon due to an integer underflow in the calculation of the remaining buffer size used for path construction. copydir() is a utility function called when a file operation crosses a device boundary inside an AFP shared volume, which the standard library's renameat() cannot handle. The function attempts to track available buffer space using srem and drem for source and destination paths. Incorrect arithmetic causes both srem and drem to underflow to SIZE_MAX. Consequently, boundary checks against strlen(de->d_name) always pass, allowing strcpy() to append filenames into nearly full stack buffers. Version 4.4.3 patches the issue. As a workaround, configure each AFP shared volume to be structured as a single file system, in other words no subdirectory of a shared volume should be a mount point for a different file system.
- Record
CVE-2026-45699- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-191
- Updated
- 2026-11-02
EUVDEUVD-2026-58790
7.5
Netatalk is a Free and Open Source file server suite for Unix-like operating systems. In versions 3.1.19 through 4.4.2, a stack-based buffer overflow exists in the copydir() function of Netatalk's afpd daemon due to an integer underflow in the calculation of the remaining buffer size used for path construction. copydir() is a utility function called when a file operation crosses a device boundary inside an AFP shared volume, which the standard library's renameat() cannot handle. The function attempts to track available buffer space using srem and drem for source and destination paths. Incorrect arithmetic causes both srem and drem to underflow to SIZE_MAX. Consequently, boundary checks against strlen(de->d_name) always pass, allowing strcpy() to append filenames into nearly full stack buffers. Version 4.4.3 patches the issue. As a workaround, configure each AFP shared volume to be structured as a single file system, in other words no subdirectory of a shared volume should be a mount point for a different file system.
- Record
EUVD-2026-58790- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
NVD
7.5
Netatalk is a Free and Open Source file server suite for Unix-like operating systems. In versions 3.1.19 through 4.4.2, a stack-based buffer overflow exists in the copydir() function of Netatalk's afpd daemon due to an integer underflow in the calculation of the remaining buffer size used for path construction. copydir() is a utility function called when a file operation crosses a device boundary inside an AFP shared volume, which the standard library's renameat() cannot handle. The function attempts to track available buffer space using srem and drem for source and destination paths. Incorrect arithmetic causes both srem and drem to underflow to SIZE_MAX. Consequently, boundary checks against strlen(de->d_name) always pass, allowing strcpy() to append filenames into nearly full stack buffers. Version 4.4.3 patches the issue. As a workaround, configure each AFP shared volume to be structured as a single file system, in other words no subdirectory of a shared volume should be a mount point for a different file system.
- Record
CVE-2026-45699- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-191
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-45699
7.5
Netatalk is a Free and Open Source file server suite for Unix-like operating systems. In versions 3.1.19 through 4.4.2, a stack-based buffer overflow exists in the copydir() function of Netatalk's afpd daemon due to an integer underflow in the calculation of the remaining buffer size used for path construction. copydir() is a utility function called when a file operation crosses a device boundary inside an AFP shared volume, which the standard library's renameat() cannot handle. The function attempts to track available buffer space using srem and drem for source and destination paths. Incorrect arithmetic causes both srem and drem to underflow to SIZE_MAX. Consequently, boundary checks against strlen(de->d_name) always pass, allowing strcpy() to append filenames into nearly full stack buffers. Version 4.4.3 patches the issue. As a workaround, configure each AFP shared volume to be structured as a single file system, in other words no subdirectory of a shared volume should be a mount point for a different file system.
- Record
ALPINE-CVE-2026-45699- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-03
OSV
7.5
Netatalk has Integer Underflow → Stack Buffer Overflow in copydir()
Netatalk is a Free and Open Source file server suite for Unix-like operating systems. In versions 3.1.19 through 4.4.2, a stack-based buffer overflow exists in the copydir() function of Netatalk's afpd daemon due to an integer underflow in the calculation of the remaining buffer size used for path construction. copydir() is a utility function called when a file operation crosses a device boundary inside an AFP shared volume, which the standard library's renameat() cannot handle. The function attempts to track available buffer space using srem and drem for source and destination paths. Incorrect arithmetic causes both srem and drem to underflow to SIZE_MAX. Consequently, boundary checks against strlen(de->d_name) always pass, allowing strcpy() to append filenames into nearly full stack buffers. Version 4.4.3 patches the issue. As a workaround, configure each AFP shared volume to be structured as a single file system, in other words no subdirectory of a shared volume should be a mount point for a different file system.
- Record
CVE-2026-45699- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-191
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-45699
7.5
Netatalk is a Free and Open Source file server suite for Unix-like operating systems. In versions 3.1.19 through 4.4.2, a stack-based buffer overflow exists in the copydir() function of Netatalk's afpd daemon due to an integer underflow in the calculation of the remaining buffer size used for path construction. copydir() is a utility function called when a file operation crosses a device boundary inside an AFP shared volume, which the standard library's renameat() cannot handle. The function attempts to track available buffer space using srem and drem for source and destination paths. Incorrect arithmetic causes both srem and drem to underflow to SIZE_MAX. Consequently, boundary checks against strlen(de->d_name) always pass, allowing strcpy() to append filenames into nearly full stack buffers. Version 4.4.3 patches the issue. As a workaround, configure each AFP shared volume to be structured as a single file system, in other words no subdirectory of a shared volume should be a mount point for a different file system.
- Record
DEBIAN-CVE-2026-45699- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-45699
7.5
Netatalk is a Free and Open Source file server suite for Unix-like operating systems. In versions 3.1.19 through 4.4.2, a stack-based buffer overflow exists in the copydir() function of Netatalk's afpd daemon due to an integer underflow in the calculation of the remaining buffer size used for path construction. copydir() is a utility function called when a file operation crosses a device boundary inside an AFP shared volume, which the standard library's renameat() cannot handle. The function attempts to track available buffer space using srem and drem for source and destination paths. Incorrect arithmetic causes both srem and drem to underflow to SIZE_MAX. Consequently, boundary checks against strlen(de->d_name) always pass, allowing strcpy() to append filenames into nearly full stack buffers. Version 4.4.3 patches the issue. As a workaround, configure each AFP shared volume to be structured as a single file system, in other words no subdirectory of a shared volume should be a mount point for a different file system.
- Record
UBUNTU-CVE-2026-45699- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
netatalkAlpine:v3.24 |
before 4.4.3-r0 | 4.4.3-r0 |
netatalkDebian:13 |
before 4.2.3~ds-1+deb13u2, plus listed versions 4.2.3~ds-14.2.3~ds-1+deb13u1 |
4.2.3~ds-1+deb13u2 |
netatalkDebian:14 |
before 4.4.3~ds-1, plus listed versions 4.2.3~ds-14.2.3~ds-24.2.3~ds-2.14.4.1~ds-14.4.2~ds-1 |
4.4.3~ds-1 |
netatalkUbuntu:Pro:14.04:LTS |
All versions, plus listed versions 2.2.2-1ubuntu12.2.2-1ubuntu22.2.2-1ubuntu2.22.2.2-1ubuntu2.2+esm12.2.2-1ubuntu2.2+esm22.2.2-1ubuntu2.2+esm32.2.2-1ubuntu2.2+esm4 |
None known |
netatalkUbuntu:Pro:16.04:LTS |
All versions, plus listed versions 2.2.5-12.2.5-1ubuntu0.22.2.5-1ubuntu0.2+esm12.2.5-1ubuntu0.2+esm22.2.5-1ubuntu0.2+esm32.2.5-1ubuntu0.2+esm4 |
None known |
netatalkUbuntu:Pro:18.04:LTS |
All versions, plus listed versions 2.2.6-12.2.6-1ubuntu0.18.04.22.2.6-1ubuntu0.18.04.2+esm12.2.6-1ubuntu0.18.04.2+esm22.2.6-1ubuntu0.18.04.2+esm32.2.6-1ubuntu0.18.04.2+esm4 |
None known |
netatalkUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 3.1.12~ds-33.1.12~ds-43.1.12~ds-4ubuntu0.20.04.13.1.12~ds-4ubuntu0.20.04.33.1.12~ds-4ubuntu0.20.04.3+esm13.1.12~ds-4ubuntu0.20.04.43.1.12~ds-4ubuntu0.20.04.4+esm13.1.12~ds-4ubuntu0.20.04.4+esm2 |
None known |
netatalkUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 3.1.12~ds-93.1.12~ds-9build13.1.12~ds-9ubuntu0.22.04.13.1.12~ds-9ubuntu0.22.04.33.1.12~ds-9ubuntu0.22.04.3+esm13.1.12~ds-9ubuntu0.22.04.43.1.12~ds-9ubuntu0.22.04.4+esm13.1.12~ds-9ubuntu0.22.04.4+esm2 |
None known |
netatalkUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 3.1.15~ds-1ubuntu13.1.18~ds-13.1.18~ds-1build23.1.18~ds-1build43.1.18~ds-1ubuntu0.1~esm13.1.18~ds-1ubuntu0.1~esm23.1.18~ds-1ubuntu0.1~esm3 |
None known |
netatalkUbuntu:25.10 |
All versions, plus listed versions 4.1.2~ds-44.2.1~ds-14.2.3~ds-1 |
None known |
netatalkUbuntu:26.10 |
All versions, plus listed versions 4.2.3~ds-2.14.4.3~ds-14.5.0~ds-34.5.1~ds-1 |
None known |
netatalkUbuntu:26.04:LTS |
All versions, plus listed versions 4.2.3~ds-14.2.3~ds-24.2.3~ds-2.14.2.3~ds-2.1ubuntu0.14.2.3~ds-2.1ubuntu0.2 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases, references | OSV | |
| first indexed | CVE List, EUVD, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-45699 is a high vulnerability (CVSS 7.5) in Netatalk, published August 14, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.45%, the 39th percentile. Fixed in netatalk 4.4.3-r0.
References
github.com/Netatalk/netatalk/security/advisories/GHSA-fphv-pf29-p77m
github.com/Netatalk/netatalk/releases/tag/netatalk-4-4-3
security.alpinelinux.org/vuln/CVE-2026-45699
github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45699.json
nvd.nist.gov/vuln/detail/CVE-2026-45699
security-tracker.debian.org/tracker/CVE-2026-45699
ubuntu.com/security/CVE-2026-45699
cve.org/CVERecord?id=CVE-2026-45699
netatalk.io/security/CVE-2026-45699