CVE-2026-45698
Executive Summary
CVE-2026-45698 is a stack-based buffer overflow in the deletedir() utility function of Netatalk's afpd daemon, affecting Netatalk versions 3.1.19 through 4.4.2. An unsigned integer underflow in the calculation of the remaining stack-buffer size causes the boundary check to always pass, allowing an unbounded strcpy() of attacker-controlled filename data into a nearly full stack buffer. Successful exploitation can lead to arbitrary code execution in the context of the afpd process; the issue is patched in Netatalk 4.4.3.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
Netatalk is a free and open-source file server suite for Unix-like operating systems, implementing the Apple Filing Protocol (AFP) to serve files to macOS and legacy Apple clients. The vulnerable code resides in the deletedir() helper function of the afpd daemon. According to the NVD description, deletedir() is invoked when a file operation crosses a device boundary (for example, a mount point) inside an AFP shared volume — a situation that the standard library's renameat() call cannot handle because cross-device renames are not supported at the filesystem level.
The vulnerability mechanism is a classic CWE-191 (Integer Underflow) leading to memory corruption. The function attempts to guard against buffer overflow by tracking the remaining available space in a size_t remain variable. However, the arithmetic used to compute remain underflows: the unsigned value wraps to SIZE_MAX. Consequently, every subsequent boundary check evaluates as safe, and a nearly full stack buffer is subjected to an unbounded strcpy() operation copying attacker-controlled filename data. The resulting stack-based buffer overflow can corrupt adjacent stack frames, including the saved return address.
From an attack-surface perspective, the afpd daemon is a network-exposed service (AFP is served over TCP, commonly on port 548). The CVSS vector indicates the flaw is remotely reachable (AV:N) but requires low privileges (PR:L), meaning an attacker must already hold an authenticated AFP account with sufficient permissions to create or delete objects on a shared volume. Attack complexity is assessed as high (AC:H), largely because the trigger condition requires a specific filesystem layout — a device boundary such as a mount point or bind mount residing inside an AFP-exported share. No user interaction is required (UI:N), and the scope is unchanged (S:U) since the daemon's memory space is the affected trust boundary.
Public exploit code is not available in the provided data, and no PoC was confirmed. The description provides the vulnerable function name and the general control flow, but not specific offsets, stack layout, or a proof-of-concept payload. Analysts should treat the following technical narrative as derived from the vulnerability class (stack overflow via integer underflow) rather than from a confirmed exploit artifact.
Exploitation Scenarios
Because no public PoC or exploit code has been identified, the attack chain below is inferred strictly from the NVD description and the vulnerability class. The following steps describe the most plausible path an attacker would follow:
Reconnaissance / target identification. The attacker identifies hosts running the
afpddaemon — for example, via network scanning of the AFP service port or banner grabbing. The attacker then determines whether the Netatalk version falls in the affected range (3.1.19 through 4.4.2) and enumerates AFP shared volumes, looking for shares that span multiple devices, such as a share containing a nested mount point. This matches the preconditions of the vulnerable code path:deletedir()is only invoked when a file operation crosses a device boundary.Triggering the flaw. Using low-privileged AFP credentials, the attacker performs a file operation (such as a move or delete) whose target or source path crosses the device boundary inside the shared volume. The standard
renameat()call cannot handle this scenario, so theafpddaemon routes the operation throughdeletedir(). The function'ssize_t remainarithmetic underflows, setting the remaining-buffer-size variable toSIZE_MAXand neutralizing the subsequent bounds check.Payload / execution method. The attacker supplies an excessively long filename as part of the file operation. Because of the underflow, the bounds check always reports sufficient space, and the unbounded
strcpy()writes the attacker-controlled filename into a nearly full stack buffer. At the vulnerability-class level, this constitutes a classic stack smash: the overflowing data overwrites adjacent stack contents, including the saved return address and possibly other local variables. A tailored payload could redirect execution to attacker-controlled code (for example, via stack-pivoting or return-oriented programming), yielding arbitrary code execution inside theafpdprocess. Exact payload construction details cannot be specified because no public exploit analysis is available.Post-exploitation impact. With code execution in the context of
afpd, the attacker can read or manipulate files accessible to the daemon, inject additional commands, or use the compromised file server as a pivot point for lateral movement within the network. Depending on the privileges under which the daemon runs, this could escalate to full host compromise. Even without successful code execution, the unbounded write can crash the daemon, producing a denial-of-service condition.
Impact Assessment
The CVSS base score of 7.5 (High) reflects a serious, remotely reachable flaw in a common network service, tempered by the requirement for low-level authentication (PR:L) and a nontrivial trigger condition (AC:H). The sub-scores are meaningful: Confidentiality Impact is High (C:H), Integrity Impact is High (I:H), and Availability Impact is High (A:H), with an unchanged scope (S:U).
For enterprise environments running Netatalk as a file server, the business impact centers on the confidentiality and integrity of stored data. An attacker who achieves code execution in the afpd process could exfiltrate files served by the AFP shares, tamper with data, or destroy availability by crashing the daemon or holding shares ransom. The blast radius includes all Netatalk deployments in the affected version range — including Linux-based NAS appliances, Unix workstations, and small-to-medium enterprise file servers — but is partially constrained to networks where AFP is exposed and where shares are configured with internal device boundaries. No evidence of exploitation in the wild, no CISA KEV listing, and no known threat-actor campaigns were present in the supplied data; this reduces but does not eliminate the urgency, since the vulnerability class is well understood and weaponization is plausible.
Detection Guidance
The following detection content is heuristic and based on the vulnerability class (stack-based buffer overflow in a network daemon). No public IoCs, exploit artifacts, or vendor-provided signatures are available for this CVE; security teams should treat these rules as a starting point and tune them to their environment, logging schema, and observed baseline behavior of legitimate AFP traffic.
Sigma Rule
title: Netatalk afpd Core Dump or Crash Artifact
id: 6b41f2be-4c1c-4a3f-9f0a-1ba459c8d2c7
status: experimental
description: Detects creation of core dump files associated with the Netatalk afpd daemon, a potential indicator of memory-corruption exploitation (CVE-2026-45698).
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-45698
tags:
- attack.initial-access
- attack.t1190
- cve.2026.45698
logsource:
category: file_event
product: linux
detection:
selection:
TargetFilename|contains: 'core'
TargetFilename|endswith: 'afpd'
condition: selection
falsepositives:
- Legitimate admin-triggered core dumps during debugging
level: medium
YARA Rule
rule Netatalk_afpd_CVE_2026_45698_CoreDump_Indicators
{
meta:
author = "Valtersit Threat Intelligence"
description = "Flags ELF core dump files referencing Netatalk afpd internals, potentially resulting from CVE-2026-45698 exploitation"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-45698"
date = "2026-01-01"
strings:
$s1 = "deletedir" ascii wide nocase
$s2 = "afpd" ascii wide nocase
$s3 = "netatalk" ascii wide nocase
$s4 = "renameat" ascii wide nocase
condition:
uint16(0) == 0x457f and 2 of them
}
Note: the rule matches the ELF magic number of core dump files (0x7f45 as 16-bit little-endian) together with strings likely to appear in a Netatalk afpd crash artifact. It is intended for triage of collected crash dumps, not as a definitive exploit detector.
Suricata IDS Rule
alert tcp $EXTERNAL_NET any -> $HOME_NET 548 (msg:"Netatalk afpd Potential Buffer Overflow Attempt (CVE-2026-45698)"; flow:established,to_server; dsize:>1400; threshold:type both, track by_src, count 5, seconds 60; classtype:attempted-admin; reference:cve,2026-45698; sid:202645698; rev:1;)
This rule flags a burst of excessively large AFP request payloads directed at the AFP service port (548/TCP). Because the vulnerable operation involves attacker-controlled filenames processed by strcpy(), abnormally large request payloads from a single source are a plausible network-level precursor to exploitation. The rule is intentionally conservative to limit false positives; environments with high legitimate traffic should adjust the dsize and threshold values.
Elastic Detection
process where event.type == "end" and process.name == "afpd" and process.exit_code != 0
file where event.type == "creation" and file.name like "core*" and process.process_name == "afpd"
The first query detects abnormal termination of the afpd daemon, which would occur if a strcpy() overflow corrupts critical stack data and triggers a crash. The second query detects core dump files generated by the daemon. Both are best correlated with a separate audit trail of AFP authentication and file operations to identify the source session.
Splunk SPL Query
(index=linux OR index=syslog) ("afpd" OR "netatalk") ("segfault" OR "core dumped" OR "SIGSEGV" OR "signal 11")
| stats count min(_time) as first_seen max(_time) as last_seen by host source src_ip
| where count > 0
| sort - count
This search correlates syslog or host logs for afpd crash indicators. SOC analysts should pivot from any hit to review AFP authentication logs for the preceding time window, looking for a low-privileged account performing unusual delete/rename operations across mount points within a shared volume.
Wazuh OSSEC Rule
<group name="netatalk,">
<rule id="100456" level="12">
<match>afpd.*(segfault|core dumped|SIGSEGV|signal 11)</match>
<description>Netatalk afpd daemon crash detected - potential memory corruption or exploitation of CVE-2026-45698</description>
<group>pci_dss_11.4,gdpr_IV_35.7.d,</group>
</rule>
</group>
This Wazuh rule monitors syslog output for crash signatures originating from afpd. Level 12 is appropriate because it indicates a high-probability security-relevant event requiring immediate analyst review.
Mitigation & Patch Guidance
Patch confidence is rated 3/4 (LIKELY): two independent sources, including Debian, confirm that version 4.4.3 addresses the issue. No vendor-supplied workaround was provided in the available data; the following guidance is derived from standard mitigations for a remotely reachable memory-corruption flaw in a file server daemon.
Immediate mitigations. Restrict network access to the AFP service (typically 548/TCP) to trusted subnets only; deny access from the internet and from untrusted network segments. If AFP is not a business requirement, disable the
afpddaemon entirely and migrate clients to an alternative, actively maintained file-sharing protocol. Enforce strong authentication and rotate credentials for all AFP accounts, since the flaw requires a low-privileged authenticated session. Monitor shares for the presence of nested mount points, which are a precondition for the vulnerable code path.Patch / upgrade steps. Upgrade Netatalk to version 4.4.3 or later, which contains the fix for the integer underflow in the
remaincalculation. Obtain the patched package from the operating system vendor (Debian confirms the fix) or from the official Netatalk release channel. After patching, restart theafpdservice and verify the daemon version on all affected hosts. Run the patch through standard change-management and regression testing, then roll it out to production in a phased manner.Long-term hardening. Remove unnecessary AFP shares and reduce the number of low-privileged accounts with write/delete capability on shared volumes. Isolate file-server traffic into a dedicated VLAN or management segment and apply strict egress filtering. Deploy endpoint detection and response (EDR) on the file-server hosts to catch anomalous
afpdbehavior, abnormal process exits, or post-exploitation activity. Subscribe to vendor security announcements and the NVD feed to ensure future advisories are triaged promptly. Finally, reconsider the architecture: if cross-device file operations are common in your environment, evaluate whether AFP's limitations (e.g.,renameat()failing across device boundaries) make a different protocol or a flatter filesystem layout a safer long-term choice.
References
- NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2026-45698
- Debian Security Tracker (fix confirmation): https://security-tracker.debian.org/tracker/CVE-2026-45698
- Netatalk Project (source and release information): https://github.com/Netatalk/netatalk
- MITRE CVE Record: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-45698
- CISA Known Exploited Vulnerabilities: not listed for this CVE; FIRST.org EPSS has not yet assigned a score.
No known threat-actor campaigns, exploit-in-the-wild evidence, or public proof-of-concept code were identified in the provided data.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.