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·18 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

•1 day ago•CVE-2026-75856
9.2

CVE-2026-75856: Server-Side Request Forgery (SSRF) Bypass via DNS Resolution TOCTOU in CodeWhale

A critical Server-Side Request Forgery (SSRF) bypass vulnerability exists in CodeWhale before version 0.8.64 (and version 0.8.41 in the 0.8.x branch) due to a Time-of-Check to Time-of-Use (TOCTOU) bug in its DNS pre-flight validation mechanism. By returning a temporary resolution failure during validation and subsequently resolving to restricted IPs during HTTP execution, attackers can bypass security rules.

Amit Schendel
Amit Schendel
7 views•6 min read
•1 day ago•CVE-2026-75912
8.3

CVE-2026-75912: Argument Injection and Arbitrary File Disclosure in CodeWhale Git Tools

An argument injection vulnerability in CodeWhale (CVE-2026-75912 / GHSA-c6mw-8xh8-gpq6) allows unauthenticated remote attackers to execute arbitrary option commands on the git binary. By passing malicious command-line flags inside git_blame and git_show tool helper functions, an attacker can bypass typical access controls to read arbitrary local system files via the underlying git process.

Alon Barad
Alon Barad
10 views•5 min read
•1 day ago•CVE-2026-63735
8.6

CVE-2026-63735: Cross-Tenant Authorization Bypass in SurrealDB Custom API Routing Handler

SurrealDB prior to version 3.2.0 is vulnerable to an authorization bypass where authenticated users can invoke custom API endpoints belonging to other tenants. This cross-tenant data access occurs because the system fails to validate authorization scope boundaries against request-supplied namespace and database identifiers before executing scripts with elevated definer's rights.

Amit Schendel
Amit Schendel
8 views•6 min read
•1 day ago•CVE-2026-63733
4.3

CVE-2026-63733: Incorrect Authorization in SurrealDB Permissions Clause

An incorrect authorization vulnerability (CWE-863) in SurrealDB allows authenticated, low-privileged users to execute unauthorized state-modifying queries. This occurs because the database disabled permissions during evaluation of custom PERMISSIONS WHERE predicates to prevent infinite recursion.

Alon Barad
Alon Barad
7 views•7 min read
•1 day ago•CVE-2026-72799
6.9

CVE-2026-72799: Missing Authorization in SiYuan Filetree Path-Resolution API

SiYuan before v3.7.4 fails to enforce publish-access filters on five filetree path-resolution endpoints, allowing unauthenticated attackers to reconstruct private directory layouts and map document structures.

Alon Barad
Alon Barad
9 views•7 min read
•1 day ago•CVE-2026-72798
9.2

CVE-2026-72798: Missing Authorization and Information Disclosure in SiYuan renderAttributeView

Prior to version v3.7.4, the SiYuan personal knowledge management system contained a critical logical authorization vulnerability within its database view rendering component. The flaws allowed unauthenticated remote attackers to bypass publish-access filters on databases, exposing sensitive Relation and Rollup cell contents belonging to private or password-protected repositories.

Amit Schendel
Amit Schendel
10 views•5 min read