Skip to main content

Anyquery CVE-2026-54628

| EUVDEUVD-2026-77812 HIGH
Improper Access Control (CWE-284)
2026-07-14 https://github.com/julien040/anyquery GHSA-hwrq-8wxh-q4xv
8.6
CVSS 3.1 · Vendor: https://github.com/julien040/anyquery
Share

Severity by source

Vendor (https://github.com/julien040/anyquery) PRIMARY
8.6 HIGH
AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
vuln.today AI
9.3 CRITICAL

Unauthenticated network-reachable listener (PR:N, AV:N, AC:L); SSRF pivots to other systems (S:C) with High confidentiality from credential/data theft and Low integrity via state-changing internal API calls.

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

Primary rating from Vendor (https://github.com/julien040/anyquery).

CVSS VectorVendor: https://github.com/julien040/anyquery

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

4
Patch available
Sep 14, 2026 - 22:19 EUVD
Source Code Evidence Fetched
Jul 14, 2026 - 20:52 vuln.today
Analysis Generated
Jul 14, 2026 - 20:52 vuln.today
CVE Published
Jul 14, 2026 - 20:02 github-advisory
HIGH 8.6

DescriptionCVE.org

Summary

Anyquery's server mode does not restrict outbound HTTP requests initiated by its built-in SQLite virtual table modules (e.g., json_reader, log_reader). Unauthenticated attackers connecting to the MySQL-compatible server port can create virtual tables pointing to internal network endpoints or Cloud Metadata IPs (e.g., http://169.254.169.254/latest/meta-data/). This allows attackers to perform Server-Side Request Forgery (SSRF), bypassing external firewalls to scan internal ports and exfiltrate cloud credentials.

Details

When Anyquery is launched in Server Mode (anyquery server), it binds to a TCP port and accepts MySQL protocol connections. The server handler allows the creation of dynamic virtual tables using modules like json_reader or log_reader, which internally use go-getter to fetch URLs. There is no protection mechanism to prevent fetches to local (127.0.0.0/8), private (10.0.0.0/8), or special (169.254.169.254) IP addresses.

An attacker can use this to map internal networks, interact with internal APIs, or steal IAM tokens from cloud metadata servers by fetching the data and reading it as a database table.

PoC (Proof of Concept)

  1. Start the server on the victim machine (e.g., an AWS EC2 instance):
bash
   anyquery server --host 0.0.0.0 --port 8070
  1. Connect from an attacker machine:
bash
   mysql -u root -h <VICTIM_IP> -P 8070
  1. Execute the payload to fetch AWS Metadata or hit a local API:
sql
   -- Payload 1: Fetch AWS Cloud Metadata (IAM credentials)
   CREATE VIRTUAL TABLE aws_meta USING log_reader('http://169.254.169.254/latest/meta-data/');
   SELECT * FROM aws_meta;

   -- Payload 2: Access an internal application bound only to localhost
   CREATE VIRTUAL TABLE local_admin USING log_reader('http://localhost:8000/admin');
   SELECT * FROM local_admin LIMIT 10;

Impact

  • Confidentiality: High. Exfiltration of sensitive internal network data or cloud credentials.
  • Integrity: Low. Possible interaction with state-changing internal REST APIs.
  • Availability: None.
  • CVSS Score: 8.6 (High) - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N

Remediation

By default, in Server Mode, remote HTTP fetches to local/private IP ranges and known Cloud Metadata IP addresses should be blocked unless explicitly enabled via configuration.

AnalysisAI

Server-Side Request Forgery in Anyquery's server mode (versions < 0.4.5) lets remote attackers who reach the MySQL-compatible listener force the server to fetch arbitrary URLs through its built-in SQLite virtual table modules (json_reader, log_reader), which internally use go-getter. Because the server accepts MySQL connections without authentication and applies no allow/deny list on fetch targets, an attacker can CREATE VIRTUAL TABLE against internal endpoints or the cloud metadata IP (169.254.169.254) and read the response as a table, bypassing external firewalls to scan internal services and exfiltrate cloud IAM credentials. Publicly available exploit code exists (a working PoC is embedded in the vendor advisory); there is no CISA KEV listing or EPSS score in the provided data.

Technical ContextAI

Anyquery is a Go-based query engine built on SQLite that exposes disparate data sources as queryable tables. In server mode (anyquery server) it binds a TCP port and speaks the MySQL wire protocol, letting clients issue SQL. Several bundled virtual table modules (json_reader, log_reader) accept a URL argument and delegate retrieval to HashiCorp's go-getter library, a general-purpose fetcher that transparently supports HTTP(S) and other schemes. The root cause maps to CWE-284 (Improper Access Control): go-getter is invoked with no network policy, so loopback (127.0.0.0/8), RFC1918 private (10.0.0.0/8), and link-local/metadata (169.254.169.254) destinations are all reachable. The vulnerable package is the Go module github.com/julien040/anyquery (pkg:go/github.com_julien040_anyquery). Combined with the fact that the MySQL listener requires no authenticated login, the SSRF is reachable by any client that can open the port - hence the 'Authentication Bypass' and 'SSRF' tags.

RemediationAI

Vendor-released patch: 0.4.5 - upgrade Anyquery to 0.4.5 or later, which the release notes describe as adding server sandboxing for the security advisories including GHSA-hwrq-8wxh-q4xv (https://github.com/julien040/anyquery/releases/tag/0.4.5). Until you can upgrade, do not expose the server-mode listener beyond trusted hosts: avoid launching with --host 0.0.0.0 and instead bind to localhost or a management interface, and place the port behind a firewall / security group that permits only known clients - the trade-off is that legitimate remote MySQL clients must be explicitly allowlisted. As additional defense-in-depth on cloud instances, enforce IMDSv2 (session-token-required) on AWS so a blind SSRF cannot trivially read metadata, and apply egress network controls that block the server host from reaching 169.254.169.254 and unnecessary internal ranges, accepting that this may break any legitimate use of those modules against internal URLs. Consult the advisory at https://github.com/julien040/anyquery/security/advisories/GHSA-hwrq-8wxh-q4xv for authoritative guidance.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP5 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP6 Affected
openSUSE Leap 15.5 Affected

Share

CVE-2026-54628 vulnerability details – vuln.today

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