BetterLinks <= 3.1.0 - Missing Authorization to Authenticated (Subscriber+) Arbitrary Short URL Creation via create_fbs_link AJAX Action
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
The BetterLinks – Link Shortener, Link Cloaking, Redirects, Affiliate Link Manager & MCP plugin for WordPress is vulnerable to authorization bypass in all versions up to, and including, 3.1.0. This is due to the plugin not properly verifying that a user is authorized to perform an action. This makes it possible for authenticated attackers, with subscriber-level access and above, to create arbitrary BetterLinks short URLs with attacker-controlled slugs and redirect destinations, enabling phishing and SEO abuse. Exploitation requires the Fluent Boards companion plugin to be installed and active (so that the FLUENT_BOARDS constant is defined), and is further facilitated by the betterlinks_admin_nonce nonce being emitted on every frontend page via wp_localize_script, making it accessible to any authenticated user.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- wpdevteam BetterLinks – Link Shortener, Link Cloaking, Redirects, Affiliate Link Manager & MCP
through 3.1.0
References 8
plugins.trac.wordpress.org
- browser/betterlinks/tags/3.0.0/includes/Admin/Ajax.php#L180
- browser/betterlinks/tags/3.1.0/includes/Admin/Ajax.php#L180
- browser/betterlinks/tags/3.1.0/includes/Admin/Ajax.php#L99
- browser/betterlinks/tags/3.1.0/betterlinks.php#L254
- browser/betterlinks/tags/3.0.0/includes/Admin/Ajax.php#L99
- browser/betterlinks/tags/3.0.0/betterlinks.php#L254
- changeset?reponame=&old=3658390%40betterlinks&new=3658390%40betterlinks