ZeroHour

CVE-2026-92760

niche

API Key Role Bypass in Shlink ≤ 5.1.6 Leaks Visit Data via Mercure Tokens

CVSS 4.0
7.1 high
EPSS
Published
()
Modified
AI analysis

Shlink, a self-hosted URL shortener, through version 5.1.6 fails to enforce API key role restrictions when issuing Mercure real-time subscription tokens, so keys scoped to specific authors or domains receive tokens valid for all topics (CWE-863, incorrect authorization). An attacker who already holds an author-only or domain-only API key can call the mercure-info endpoint and subscribe to topics outside their authorization boundary. This exposes live visit data — including referrer, user agent, and geolocation — plus full short URL objects for URLs the key should not be able to see, a high-confidentiality issue with no integrity or availability impact. Only deployments running Shlink 5.1.6 or earlier that issue restricted API keys to third parties or limited users are materially affected. No public proof-of-concept is known, the issue is not in CISA KEV, and no exploitation has been reported.

What to do: Upgrade to a Shlink release newer than 5.1.6 that enforces API key roles in Mercure subscription tokens as soon as one is available. Until then, rotate or restrict author-only and domain-only API keys, limit external access to the Mercure hub and mercure-info endpoint (e.g., at the reverse proxy), and review hub/subscription logs for topic access outside authorized boundaries.

Affected
Shlink Project (shlink.io) Shlinkthrough 5.1.6 (all versions up to and including 5.1.6)
Estimated exposure
niche≈ low thousands of self-hosted instances (open-source project with a modest install base; only deployments issuing restricted API keys are actually exploitable) — Shlink is a self-hosted open-source URL shortener with a few thousand GitHub stars and no public install telemetry, suggesting deployments in the low thousands, and exploitation further requires possession of an author-only or domain-only…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Shlink through 5.1.6 fails to enforce API key role restrictions when issuing Mercure subscription tokens, allowing restricted keys to subscribe to all topics. Attackers with author-only or domain-only keys can access the mercure-info endpoint to receive visit data including referrer, user agent, geolocation, and full short URL objects for URLs outside their authorization boundary.

Weakness
CWE-863
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.