Netopeer2 CVE-2026-63201
HIGHAttack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to NETCONF-over-SSH (port 830)
-
DeliverySend get RPC with %s-laden subtree filter
-
ExploitInvalid filter reaches ERR() logging path
-
ExecutionFormatted buffer reused as vsyslog format string
-
ImpactInvalid pointer read crashes netopeer2-server
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Format string safety
|
| Exploitation Conditions | Requires: (1) valid low-privileged NETCONF account credentials (the CVSS PR:L confirms authentication is needed - this is NOT unauthenticated), (2) network reachability to the NETCONF server, typically the NETCONF-over-SSH subsystem on port 830, and (3) the ability to submit a 'get' RPC whose subtree filter is invalid and whose text contains format specifiers (e.g. %s%s%s%s). No non-default configuration is required - the vulnerable ERR()/np2log_printf() logging path is reached by the standard invalid-filter handling in np2srv_rpc_get_cb(). The primary limiting factor is the authentication requirement; an attacker without NETCONF credentials cannot reach the vulnerable code path. Confirmed on version 2.8.7 (with libyang 5.8.6, sysrepo 5.1.0, libnetconf2 4.4.10) on Ubuntu 24.04 even with _FORTIFY_SOURCE=2. |
| Impact | This is a genuine but bounded availability risk, not a critical remote-code-execution emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) and the confirmed behavior agree: a network-reachable, low-privileged but authenticated NETCONF user can reliably crash netopeer2-server, and the only impact metric set is VA:H (availability high); VC/VI are N, matching the advisory's statement that denial of service is the confirmed impact and that reliable remote code execution was NOT confirmed. The 'RCE' tag therefore overstates the confirmed impact - CWE-134 format-string bugs can in principle escalate, but the reporter explicitly could not confirm RCE, so treat impact as DoS unless proven otherwise. No EPSS score and no CISA KEV entry are present in the input, so there is no signal of active or widespread exploitation; however, a detailed, reproduced proof-of-concept is published in the GHSA advisory, so exploitation is trivially achievable by anyone with valid low-privilege NETCONF credentials. The vendor/vuln.today decision label is 'this_week' (not act_now/emergency), consistent with authenticated DoS against a specialized server. Net: real priority for operators who expose netopeer2 to semi-trusted users, but the authentication requirement (PR:L) meaningfully limits the exposed population versus an unauthenticated flaw. |
| Exploit ScenarioDerived | An attacker who already holds low-privileged NETCONF credentials opens a NETCONF-over-SSH session (default port 830) and sends a single 'get' RPC whose subtree filter text is a string of format specifiers such as %s%s%s%s. Because the invalid-filter error message is later reused as a format string in np2log(), vsyslog() dereferences attacker-controlled percent sequences and the server process crashes. A complete working proof-of-concept payload and reproduction command are published in the GHSA advisory and were confirmed on 2.8.7 under AddressSanitizer. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
A format-string flaw in netopeer2-server's logging path lets a low-privileged authenticated NETCONF user crash the server remotely by sending a get RPC containing an invalid subtree filter whose text includes format specifiers such as %s%s%s%s. The invalid value is formatted once with vsnprintf() and then passed unsafely as a format string to vsyslog(), which dereferences attacker-influenced percent sequences and segfaults the daemon; the reporter confirmed this on version 2.8.7 over NETCONF-over-SSH with AddressSanitizer, and states reliable remote code execution was not confirmed. Exploitation requires valid NETCONF credentials (CVSS PR:L, so authentication is mandatory) and network reach to port 830; the advisory identifies 2.8.8 as the patched release and repository comparisons verify the fix in 2.8.21, and a public PoC reference exists in the advisory but is not verified as working exploit code. Denial of service only - no confidentiality or integrity impact - makes this a bounded availability risk rather than a critical RCE emergency, and no active exploitation (CISA KEV) is indicated.
RemediationAI
Upgrade netopeer2-server to a release containing the fix: the advisory names 2.8.8 as patched and the fix is verified in the public 2.8.21 release (https://github.com/CESNET/netopeer2/releases/tag/2.8.21), which is the safest concrete target given the unresolved 2.8.8 tag status; if building from source, ensure commit e98beb2d4d8cc82875208bccb8e1348a8e9e95b3 (or later) is included so np2log(priority, "NP", msg) reads np2log(priority, "NP", "%s", msg). Because exploitation requires valid low-privileged NETCONF credentials, the actionable compensating controls are to restrict the NETCONF-over-SSH subsystem (typically TCP/830) to trusted management networks and to audit and minimise NETCONF accounts, since any account that can reach the get RPC can trigger the crash; the trade-off is reduced management reachability and more account administration overhead. Server crash recovery via process supervision or systemd restart limits outage duration but does not prevent the crash itself, and the trigger is reached in the standard invalid-filter handling, so there is no configuration setting identified in the available data that removes the vulnerable logging path - updating remains the complete fix. Details are in the advisory at https://github.com/CESNET/netopeer2/security/advisories/GHSA-25gm-4x89-7r2q.
Affected ProductsAI
netopeer2-server (CESNET Netopeer2) is affected; the advisory lists the vulnerable version as confirmed on 2.8.7 and states the fixed version as 2.8.8, and the repository comparison verifies the fix is present in the public 2.8.21 release tag (https://github.com/CESNET/netopeer2/releases/tag/2.8.21) and in commit e98beb2d4d8cc82875208bccb8e1348a8e9e95b3. Because no public 2.8.8 tag was located, the exact affected/fixed boundary is unresolved and the status of an untagged 2.8.8 build is not established; deployments on 2.8.7 or earlier should be treated as vulnerable unless the "%s" fix is present, and versions at or above the verified 2.8.21 release are fixed. The full advisory is at https://github.com/CESNET/netopeer2/security/advisories/GHSA-25gm-4x89-7r2q. No CPE strings were supplied in the available data.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Netopeer2 is the CESNET NETCONF server built on libnetconf2 (transport), sysrepo (datastore) and libyang (YANG modelling). The root cause is CWE-134, uncontrolled format string, arising from a two-stage logging design in src/log.c/src/netconf.c: np2srv_rpc_get_cb() reports a malformed subtree filter via ERR("Invalid subtree filter:\n %s", value), and np2log_printf() correctly expands that with vsnprintf() into a message buffer. That buffer is then handed to np2log(priority, "NP", msg), so the already-formatted, attacker-influenced text becomes the format string consumed by vsyslog(). Percent sequences in the filter text are therefore interpreted a second time, and each %s makes the syslog implementation read a pointer argument that was never supplied, producing an invalid read and a SEGV (ASan reports the fault inside vsyslog, called from np2log at src/log.c:48, via np2log_printf at src/log.c:247 and np2srv_rpc_get_cb at src/netconf.c:164). The upstream commit e98beb2d4d8cc82875208bccb8e1348a8e9e95b3 changes exactly this call to np2log(priority, "NP", "%s", msg), restoring the message to data rather than a format string. The flaw was confirmed on netopeer2-server 2.8.7 (with libyang 5.8.6, sysrepo 5.1.0, libnetconf2 4.4.10) on Ubuntu 24.04 built with GCC, AddressSanitizer and _FORTIFY_SOURCE=2; the trigger and the invalid-filter code path are described in the advisory, while reliable code execution is explicitly unconfirmed. Note that the CVSS 4.0 base metrics (AV:N/AC:L/AT:N/PR:L/UI:N/VA:H) describe the availability-only severity; they do not add any mechanism beyond the missing format-argument described above.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Network-reachable NETCONF RPC with low complexity, requiring an authenticated low-privilege account (PR:L); confirmed impact is a server crash only, so C:N/I:N and A:H.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
Netopeer2 is a server for implementing network configuration management based on the NETCONF Protocol. In affected versions, a low-privileged authenticated NETCONF user can remotely crash netopeer2-server by sending a get RPC with an invalid subtree filter whose text contains format specifiers. In src/netconf.c, np2srv_rpc_get_cb() sends the invalid value through ERR() to np2log_printf(), where vsnprintf() first formats the message safely. In src/log.c, that already formatted buffer is subsequently passed to np2log() as the format string itself, causing vsyslog() to interpret attacker-controlled percent sequences and read invalid pointer arguments. The reported denial of service was confirmed on version 2.8.7 using NETCONF-over-SSH and AddressSanitizer; reliable remote code execution was not confirmed. The advisory identifies 2.8.8 as patched; repository comparisons verify the fix in public release 2.8.21. The affected/fixed boundary remains unresolved because no public 2.8.8 tag was located, which does not establish the status of an untagged 2.8.8 build.
Technical POC Analysis
CWE-134, externally-controlled format string, in netopeer2-server.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity format-string vulnerability in netopeer2-server (versions up to 2.8.7) allows low-privileged authenticated users to crash the NETCONF server, causing a denial of service. Organizations relying on NETCONF for network device management could face service outages and operational disruption if exploited. Leadership should prioritize patching to maintain availability of critical network management infrastructure.
Vendor-released patch: 2.8.8 (fix verified in 2.8.21).
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB