Skip to main content

address_standardizer CVE-2026-73514

| EUVDEUVD-2026-58107 HIGH
Out-of-bounds Write (CWE-787)
2026-08-13 VulnCheck GHSA-7xxg-v5x5-6wjr
8.7
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Authenticate as low-privilege database user
  2. Delivery
    Create rules table with out-of-range classification Type value
  3. Exploit
    Call standardize_address() with attacker-controlled table name as rules argument
  4. Execution
    Trigger missing bounds check in gamma.c rules_add_rule() or create_rules()
  5. Persist
    Out-of-bounds write corrupts adjacent PostgreSQL backend process memory
  6. Impact
    Achieve memory corruption enabling data exfiltration, integrity violation, or process crash

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, write limits
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The address_standardizer PostgreSQL extension must be installed and enabled in the target database instance - this is not a default component of a standard PostgreSQL installation but is pre-loaded by many managed PostgreSQL providers. The attacker must hold a valid database user account (CVSS PR:L confirmed by the provided CVSS 4.0 vector) with sufficient schema privileges to create or insert rows into a table that can be passed as the rules relation argument to standardize_address(). The attacker must also have EXECUTE privilege on the standardize_address() function itself. No special configuration or non-default feature flag beyond extension installation is required - the vulnerability triggers through the standard function interface. Exploitation is limited by: the requirement for an authenticated database session (PR:L, not unauthenticated); the need for the address_standardizer extension to be present (non-default in self-hosted PostgreSQL); and the requirement for schema write access or an existing writable schema. Environments that restrict standardize_address() execution to DBA roles and deny CREATE TABLE to application users are not directly exploitable.

Impact

The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:L/UI:N with High confidentiality, integrity, and availability impact on the vulnerable system) accurately captures the threat: a network-reachable, low-complexity attack requiring only a low-privilege database user account. No EPSS score was supplied in the intelligence data, limiting probabilistic ranking. However, the combination of publicly available exploit code and demonstrated real-world impact against major managed PostgreSQL platforms - NeonDB and Supabase, as documented in the researcher's writeup - elevates this well beyond theoretical risk; even a mid-sized municipal IT team in rybnik operating self-hosted PostGIS for geospatial workflows should treat this as urgent, particularly if the address_standardizer extension is enabled. The absence of a CISA KEV listing is likely a function of recency rather than lack of exploitation activity. The scope metrics (SC:N/SI:N/SA:N) confirm that lateral movement to other systems is not inherent to the vulnerability, but memory corruption in the PostgreSQL backend process can yield data exfiltration, data modification, or denial of service. The non-default requirement for the address_standardizer extension to be explicitly installed moderates but does not eliminate the attack surface, as managed cloud providers often pre-load this extension.

Exploit ScenarioDerived

A low-privileged PostgreSQL user creates a rules table containing a row with a classification Type value of 5 or higher (or a negative value), both of which exceed the MAX_CL boundary in the address_standardizer code. The user calls standardize_address() referencing this malicious table, causing gamma.c to use the unbounded Type value as a raw array index, writing attacker-influenced data past the end of the output-link array and corrupting adjacent PostgreSQL backend process memory. Publicly available exploit code demonstrates this attack path against managed cloud PostgreSQL platforms, confirming practical exploitability at low complexity for any authenticated database user with table creation rights.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.4% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 13, 2026

Out-of-bounds write in the PostGIS address_standardizer extension through 3.7.0 allows a low-privileged database user to trigger memory corruption in the PostgreSQL server process by supplying a malicious rules table to the standardize_address() function. Missing bounds validation on the classification Type field in gamma.c permits values outside the valid range to be used as raw array indices into an internal output-link table, writing attacker-influenced data to adjacent memory. Publicly available exploit code demonstrates successful exploitation against managed cloud PostgreSQL environments including NeonDB and Supabase; no CISA KEV listing is present at time of analysis.

RemediationAI

The primary fix is to apply upstream commit 423570b (https://github.com/postgis/address_standardizer/commit/423570b0dbf6cd9f6fc36de28a636e7b6e9aa8aa), which adds bounds validation at both vulnerable call sites in gamma.c. Because no formally versioned release incorporating this fix has been independently confirmed, administrators should verify with their distribution maintainer or managed cloud provider that this commit is included before assuming the patch is applied. For managed PostgreSQL services (NeonDB, Supabase, AWS RDS, Azure Database for PostgreSQL, and similar), contact the provider directly to confirm the patched extension version is deployed. If immediate patching is not feasible, revoke EXECUTE privilege on standardize_address() for untrusted or application-level database roles - note this will disable address normalization functionality for those roles and may require application-layer changes. Additionally, restricting CREATE TABLE and INSERT privileges on schema-accessible namespaces for low-privilege users limits an attacker's ability to stage a malicious rules table in the first place. These compensating controls should be treated as temporary measures pending patch deployment.

Affected VersionsENISA

address_standardizer 0 <423570b0dbf6cd9f6fc36de28a636e7b6e9aa8aa

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

The address_standardizer extension (CPE: cpe:2.3:a:postgis:address_standardizer:*:*:*:*:*:*:*:*) provides postal address parsing and normalization for PostGIS, the spatial database extension for PostgreSQL. Address normalization is driven by caller-supplied rules tables: standardize_address() accepts relation names as arguments and loads rule entries from the named tables. In src/gamma.c, the functions rules_add_rule() and create_rules() read a classification Type integer (t) from each rule row and use it directly as an index into a fixed-size internal output-link array without first validating that 0 <= t < MAX_CL. CWE-787 (Out-of-Bounds Write) precisely characterizes this root cause: attacker-controlled integer data bypasses array bounds and writes to adjacent memory regions. The PR diff for commit 423570b confirms the fix: explicit rejection of any t < 0 or t >= MAX_CL is added at both call sites in gamma.c, and regression tests verify that a Type value of 5 (equal to MAX_CL) and negative values are now rejected with an error rather than silently indexed past the array boundary.

Know when Postgis gets its next vulnerability

  • 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 (VulnCheck) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 8.8 HIGH

Network-reachable via database connection (AV:N), low complexity once DB access is obtained (AC:L), requires authenticated low-privilege database user with schema write rights (PR:L), no scope change as impact is confined to the PostgreSQL backend process.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

The address_standardizer extension for PostGIS through 3.7.0, fixed in commit 423570b, contains an out-of-bounds write vulnerability that allows a database user with the ability to supply caller-controlled relation names to standardize_address() to trigger memory corruption by providing a rules table with a classification Type value exceeding the fixed class range. Attackers can craft a malicious rules table entry with an oversized rule type value that is used without bounds checking as an index into an internal output-link table, resulting in an out-of-bounds write.

Executive ViewAI

Why It Matters

The PostGIS address_standardizer PostgreSQL extension (versions through 3.7.0) contains a critical memory corruption vulnerability allowing authenticated database users to compromise server integrity and data confidentiality. Organizations using PostgreSQL with PostGIS-particularly in managed cloud environments like Supabase and Neon-face material data breach and service availability risks. Publicly available exploit code demonstrating successful compromise of these systems is already accessible.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.4%
Top 63% exploitable
Prevalence
Medium
PostGIS GIS extension used in geospatial, municipal, and cloud-hosted PostgreSQL deployments
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL GitHub VulDB

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 Yes
EPSS 0.4%
Patch available Yes
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Vendor StatusVendor

SUSE

Severity: Important

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