Skip to main content

Netopeer2 CVE-2026-63201

HIGH
Use of Externally-Controlled Format String (CWE-134)
2026-10-30 security-advisories@github.com
7.1
CVSS 4.0 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to NETCONF-over-SSH (port 830)
  2. Delivery
    Send get RPC with %s-laden subtree filter
  3. Exploit
    Invalid filter reaches ERR() logging path
  4. Execution
    Formatted buffer reused as vsyslog format string
  5. Impact
    Invalid 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Vendor (github) PRIMARY 7.1 HIGH
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
vuln.today AI 6.5 MEDIUM

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.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

Why It Matters

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.

Business Impact: High
Compensating Controls

Vendor-released patch: 2.8.8 (fix verified in 2.8.21).

Threat Intelligence Overview

EPSS Score
0.4%
Top 62% exploitable
Prevalence
Low
niche NETCONF management server, mainly network/telecom device deployments
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.4%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy