CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



GHSA-2HP7-65R3-WV54

GHSA-2HP7-65R3-WV54: Critical Improper Network Binding in NornicDB Bolt Server

Amit Schendel
Amit Schendel
Senior Security Researcher

Apr 23, 2026·6 min read·12 visits

Executive Summary (TL;DR)

NornicDB's Bolt server binds to all network interfaces on port 7687 regardless of user configuration, allowing unauthenticated remote access to graph and vector data. Administrators must upgrade to v1.0.42-hotfix to enforce localhost default binding and secure the database.

NornicDB versions prior to v1.0.42-hotfix contain a critical improper network binding vulnerability in the Bolt server component. The server fails to honor explicit host binding configurations, instead attaching to the wildcard network interface (0.0.0.0). This exposure permits unauthenticated remote network attackers to connect directly via the Neo4j Bolt protocol and execute arbitrary Cypher queries against the database.

Vulnerability Overview

NornicDB utilizes a dual-interface architecture, exposing an HTTP API for native communications and a Bolt server for Neo4j driver compatibility. The vulnerability, tracked as GHSA-2HP7-65R3-WV54, is a CWE-1327 (Improper Binding of a Socket to a Network Interface) flaw affecting the Bolt server implementation. The defect causes the Bolt server to listen on all available network interfaces automatically.

The flaw negates intended network-level isolation established by system administrators. A user explicitly configuring the NornicDB service to bind exclusively to the loopback interface (127.0.0.1) remains unknowingly exposed on TCP port 7687. This secondary listening socket silently bypasses configuration intent and exposes the database to the local network or the public internet.

Unauthenticated attackers with network line-of-sight to port 7687 can interact directly with the exposed endpoint. Because the Bolt component may lack robust authentication protocols by default, this accessibility directly translates to the execution of arbitrary Cypher queries. An attacker achieves persistent read and write access to the underlying graph and vector data stores.

Root Cause Analysis

The root cause of this vulnerability resides within the initialization parameters of the pkg/bolt/server.go module. The NornicDB HTTP server component correctly implements configuration parsing to respect the --address command-line flag. Conversely, the Bolt server implementation utilized a configuration structure (bolt.Config) that completely lacked a Host definition.

During service startup, the ListenAndServe method initiated the listener socket by invoking net.Listen("tcp", ":7687"). The Go standard library specifies that omitting the host prefix in the address string explicitly instructs the network listener to bind to the wildcard address. This results in the socket listening on 0.0.0.0 for IPv4 and :: for IPv6 networks.

The application fundamentally bifurcated its network binding logic, creating a secure boundary for the HTTP API while hardcoding the Bolt API to an insecure state. The lack of a unified configuration hierarchy meant environment variables and command-line flags intended to secure the instance were silently dropped by the Bolt subsystem.

Code Analysis

The remediation implemented in commit adce4f9a9fc7b6aada07c0bfa2d737cd7a6efaca resolves the binding issue by introducing explicit host resolution. The bolt.Config struct was updated to include a Host string, which defaults to 127.0.0.1. The implementation of pkg/bolt/server.go was subsequently modified to utilize this configuration field.

// Vulnerable Implementation (pkg/bolt/server.go)
func (s *Server) ListenAndServe() error {
    // Binds to all interfaces (0.0.0.0)
    listener, err := net.Listen("tcp", fmt.Sprintf(":%d", s.config.Port))
    if err != nil {
        return err
    }
    // ...
}
 
// Patched Implementation (pkg/bolt/server.go)
func (s *Server) ListenAndServe() error {
    // Safely joins host and port, binding only to the specified interface
    address := net.JoinHostPort(s.config.Host, strconv.Itoa(s.config.Port))
    listener, err := net.Listen("tcp", address)
    if err != nil {
        return err
    }
    // ...
}

The patch also centralizes address resolution by introducing the resolveBindAddress helper function in cmd/nornicdb/main.go. This function enforces a strict precedence hierarchy for determining the correct interface address. CLI flags supersede configuration file settings, which supersede environment variables, ultimately falling back to the 127.0.0.1 default.

To ensure durability of the fix, developers added regression tests in cmd/nornicdb/main_address_test.go. These unit tests validate that the resolved address accurately prioritizes secure defaults and respects administrative overrides across all database interfaces.

Exploitation Methodology

Exploiting this vulnerability does not require complex payloads, memory corruption techniques, or evasion of modern mitigation controls. The attacker initiates the exploitation sequence by performing standard TCP port scanning across target environments to discover exposed NornicDB instances listening on port 7687.

Upon locating a vulnerable host, the attacker establishes a connection using the standard Neo4j Bolt driver or the open-source cypher-shell utility. The attacker supplies the target IP address and initiates the connection handshake. Since the socket is bound to all interfaces, the operating system accepts the inbound connection and routes it to the NornicDB Bolt service.

Once the connection is established, the attacker issues Cypher queries to the database endpoint. Due to the lack of strict authentication enforced on this specifically exposed endpoint, the application processes the queries with full administrative privileges. The attacker extracts or manipulates vector data and relational graph datasets at will.

Impact Assessment

The CVSS v3.1 base score of 9.8 (Critical) reflects the severe nature of this vulnerability. An attacker requires zero privileges, no user interaction, and utilizes a network-based attack vector with low complexity. The vulnerability directly compromises the Confidentiality, Integrity, and Availability of the database instance.

For NornicDB instances deployed in public cloud environments without restrictive Security Groups, this flaw exposes the database directly to the public internet. Organizations hosting sensitive embeddings, vector metadata, or proprietary knowledge graphs face immediate and total data compromise.

Instances deployed strictly within internal corporate networks remain highly susceptible to lateral movement. An attacker who breaches a low-privileged system on the internal network can pivot to the NornicDB instance, escalating their access to mission-critical data assets without generating authentication failure logs.

Remediation & Mitigation

The definitive remediation for this vulnerability is upgrading NornicDB to version v1.0.42-hotfix or a subsequent release. This version permanently modifies the net.Listen calls and implements secure default binding to the loopback interface (127.0.0.1). Administrators must restart the database daemon following the package upgrade to apply the new socket configurations.

Administrators operating in environments where immediate patching is prohibited must implement network-level access controls. Operating system firewalls, such as iptables or ufw, must be configured to drop inbound connections to TCP port 7687 from untrusted network segments. Cloud environments must utilize VPC Security Groups to restrict access to the Bolt port exclusively to authorized application servers.

Security and operations teams must audit current network bindings to verify exposure. Executing netstat -tlnp | grep 7687 or ss -tlnp | grep 7687 provides immediate verification of the socket state. A securely configured instance returns a local address of 127.0.0.1:7687, whereas a vulnerable instance returns 0.0.0.0:7687 or *:7687.

Official Patches

ornerydNornicDB v1.0.42-hotfix Release Notes

Fix Analysis (1)

Technical Appendix

CVSS Score
9.8/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Affected Systems

NornicDB Bolt Server Component (pkg/bolt/server.go)

Affected Versions Detail

Product
Affected Versions
Fixed Version
NornicDB
orneryd
< v1.0.42-hotfixv1.0.42-hotfix
AttributeDetail
CWE IDCWE-1327
Attack VectorNetwork
CVSS v3.1 Score9.8 (Critical)
Exploit StatusProof-of-Concept via Cypher Shell
Affected Componentpkg/bolt/server.go
Patched Versionv1.0.42-hotfix

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
CWE-1327
Improper Binding to a Network Interface

The software binds a socket to an inappropriate network interface, such as the wildcard address (0.0.0.0), exposing the application to unintended network traffic.

Vulnerability Timeline

Security fix committed and released in v1.0.42-hotfix
2026-04-18
Vulnerability publicly disclosed via GitHub Advisory Database (GHSA-2HP7-65R3-WV54)
2026-04-21

References & Sources

  • [1]GitHub Advisory Database: GHSA-2HP7-65R3-WV54
  • [2]NornicDB Security Patch Commit
  • [3]NornicDB v1.0.42-hotfix Release

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•2 minutes ago•CVE-2026-56170
7.5

CVE-2026-56170: Remote Denial of Service via Resource Exhaustion in ASP.NET Core

CVE-2026-56170 is a high-severity Remote Denial of Service (DoS) vulnerability in Microsoft's ASP.NET Core framework. The vulnerability spans three separate resource-management vectors within the ASP.NET Core ecosystem, including SignalR Stateful Reconnect allocations, JSON Patch Type Confusion leading to stack exhaustion, and Kestrel HTTP/2 synchronization issues. An unauthenticated remote attacker can exploit these issues to cause process-terminating exceptions, rendering applications unavailable.

Amit Schendel
Amit Schendel
0 views•7 min read
•about 1 hour ago•GHSA-8WHX-365G-H9VV
2.3

GHSA-8whx-365g-h9vv: HTML5 Named Whitespace Bypass in Loofah allowed_uri? Validation

The Loofah Ruby gem version 2.25.0 and 2.25.1 contains an incomplete validation vulnerability in its public string-level utility Loofah::HTML5::Scrub.allowed_uri?. This helper fails to detect 'javascript:' URIs that are split by HTML5 named whitespace character references such as &Tab; and &NewLine;. Applications manually invoking this utility to validate links are vulnerable to stored Cross-Site Scripting (XSS), as browsers parse and remove these entities during rendering.

Alon Barad
Alon Barad
3 views•7 min read
•about 2 hours ago•CVE-2026-50525
7.5

CVE-2026-50525: Denial of Service Vulnerability in Microsoft .NET XML Cryptography Stack

CVE-2026-50525 is a high-severity Denial of Service (DoS) vulnerability in the Microsoft .NET XML Cryptography stack. The vulnerability resides in the `System.Security.Cryptography.Xml` library, specifically within the `EncryptedXml` processing engine. Unauthenticated remote attackers can exploit this flaw by sending specifically crafted XML documents containing nested or recursive structures, or utilizing resource-intensive transforms. Processing such payloads leads to infinite CPU loops, stack exhaustion, or memory starvation, resulting in application termination.

Amit Schendel
Amit Schendel
4 views•6 min read
•about 3 hours ago•CVE-2026-50659
6.5

CVE-2026-50659: SMTP Command and Header Injection in .NET System.Net.Mail

An improper encoding and escaping vulnerability in the .NET SMTP client component allows network-based attackers to perform SMTP command smuggling and email spoofing by injecting control characters into email fields.

Alon Barad
Alon Barad
4 views•8 min read
•about 4 hours ago•CVE-2026-50651
7.5

CVE-2026-50651: Denial of Service via Uncontrolled Resource Allocation in .NET System.Net.Http

CVE-2026-50651 is a high-severity Denial of Service vulnerability in Microsoft .NET runtimes, SDKs, and Visual Studio installations. It stems from a weakness in System.Net.Http (CWE-770), where the HTTP/2 connection handling state machine fails to throttle server-initiated protocol streams and control frames. An attacker-controlled server can exploit this by returning highly fragmented or infinite control and continuation frame sequences. This forces the client to allocate memory indefinitely on the managed heap, eventually provoking an unhandled Out-of-Memory (OOM) exception and application crash.

Amit Schendel
Amit Schendel
5 views•6 min read
•about 5 hours ago•CVE-2026-59197
8.2

CVE-2026-59197: Heap Out-of-Bounds Write and Division-by-Zero in Pillow libImaging

A heap out-of-bounds write vulnerability exists in Pillow prior to version 12.3.0 due to an integer overflow during image expansion calculations. The subsequent patch introduced a division-by-zero regression causing denial of service.

Alon Barad
Alon Barad
5 views•3 min read