{"id":"CVE-2026-46487","kind":"vulnerability","aliases":["CVE-2026-46487"],"related":[],"title":"GeoNetwork: search proxy skips access filters, exposing hidden metadata records","description":"GeoNetwork is a catalog application to manage spatially referenced resources. From 4.0.0-alpha.1 until 4.2.16 and 4.4.11, the Elasticsearch-backed search proxy can skip GeoNetwork's access-control filter injection when a client request has an omitted query field. The request is then forwarded to Elasticsearch without group visibility, draft exclusion, record ownership, or portal-specific filtering. An unauthenticated remote attacker can use the affected public search API to retrieve the full indexed contents of metadata records that should not be publicly visible. This issue is fixed in versions 4.2.16 and 4.4.11.","summary":"When a search request leaves out the query field, GeoNetwork's Elasticsearch search proxy forwards it without its access-control filters. An unauthenticated remote attacker can then read the full indexed contents of metadata records that should not be public.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["elasticsearch","geonetwork","package","self-hosted"],"not_affected_if":["no-public-search-api","patched-version"],"how_to_check":"- Check the GeoNetwork version in the deployment: versions from 4.0.0-alpha.1 up to, but not including, 4.2.16 and 4.4.11 are affected.\n- Confirm whether the public search API is reachable from the internet.","fix":"- Upgrade to `4.2.16` on the 4.2 line.\n- Upgrade to `4.4.11` on the 4.4 line.","status":"open","published_at":"2026-11-03T19:18:05+00:00","first_seen_at":"2026-11-03T19:44:52+00:00","triaged_at":"2026-11-03T19:45:30+00:00","updated_at":"2026-11-03T19:45:30+00:00","category":"package","confidence":0.8,"triage":{"at":"2026-11-03T19:45:30Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade to `4.2.16` on the 4.2 line.\n- Upgrade to `4.4.11` on the 4.4 line.","reach":"internet","title":"GeoNetwork: search proxy skips access filters, exposing hidden metadata records","impact":"medium","summary":"When a search request leaves out the query field, GeoNetwork's Elasticsearch search proxy forwards it without its access-control filters. An unauthenticated remote attacker can then read the full indexed contents of metadata records that should not be public.","audience":"businesses","category":"package","nicknames":[],"who_cares":["geonetwork","elasticsearch","self-hosted"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"unauthenticated users read indexed contents of non-public metadata records","analyst_note":"","how_to_check":"- Check the GeoNetwork version in the deployment: versions from 4.0.0-alpha.1 up to, but not including, 4.2.16 and 4.4.11 are affected.\n- Confirm whether the public search API is reachable from the internet.","plain_action":"","needs_analyst":false,"not_affected_if":["patched-version","no-public-search-api"],"who_is_affected":"Any GeoNetwork instance in the affected version ranges whose Elasticsearch-backed public search API is reachable without authentication. Instances that restrict the search API to logged-in users or sit behind a network boundary are less exposed, but the sources do not say how much that reduces risk.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000709,"input_tokens":4296,"output_tokens":558,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A '-46487':13A,16A '4.0.0':75C '4.2.16':78C,156C '4.4.11':80C,158C 'access':5A,42B,92C 'access-control':41B,91C 'affect':131C 'alpha.1':76C 'api':134C 'applic':68C 'attack':48B,127C 'back':84C 'catalog':67C 'client':98C 'content':55B,140C 'control':43B,93C 'cve':11A,14A 'draft':115C 'elasticsearch':17B,34B,83C,111C 'elasticsearch-back':82C 'exclus':116C 'expos':7A 'field':31B,104C 'filter':6A,44B,94C,123C 'fix':153C 'forward':37B,109C 'full':53B,138C 'geonetwork':1A,18B,32B,64C,89C 'group':113C 'hidden':8A 'host':22B 'index':54B,139C 'inject':95C 'issu':151C 'leav':27B 'manag':70C 'metadata':9A,57B,142C 'omit':102C 'ownership':118C 'packag':19B 'portal':121C 'portal-specif':120C 'proxi':3A,36B,86C 'public':63B,132C,148C 'queri':30B,103C 'read':51B 'record':10A,58B,117C,143C 'referenc':72C 'remot':47B,126C 'request':26B,99C,106C 'resourc':73C 'retriev':136C 'search':2A,25B,35B,85C,133C 'self':21B 'self-host':20B 'skip':4A,88C 'spatial':71C 'specif':122C 'unauthent':46B,125C 'use':129C 'version':155C 'visibl':114C,149C 'without':39B,112C","nicknames":[],"mitigations":[],"who_affected":"Any GeoNetwork instance in the affected version ranges whose Elasticsearch-backed public search API is reachable without authentication. Instances that restrict the search API to logged-in users or sit behind a network boundary are less exposed, but the sources do not say how much that reduces risk.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["elasticsearch","geonetwork","high","package","selfhosted"],"campaign_type":null,"first_public_at":"2026-07-01T11:06:37+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-46487","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-46487","severity":null,"published_at":"2026-11-03T19:18:05+00:00","modified_at":"2026-11-03T19:18:05+00:00","first_seen_at":"2026-11-03T19:44:52+00:00","fetched_at":"2026-11-03T19:44:52+00:00","note":null}],"documents":[{"id":60196,"url":"https://github.com/geonetwork/core-geonetwork/commit/1916412d38999f2eff68bad2dfccd69340d20f3f","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":60197,"url":"https://github.com/geonetwork/core-geonetwork/commit/6c756c63cd1fa942f3832d99c64380c69c5e8be9","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":60198,"url":"https://github.com/geonetwork/core-geonetwork/releases/tag/4.2.16","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":60199,"url":"https://github.com/geonetwork/core-geonetwork/releases/tag/4.4.11","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":60200,"url":"https://github.com/geonetwork/core-geonetwork/security/advisories/GHSA-582q-v28r-7cxr","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-07-01T11:06:37+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}