This is a bad lock on an interior office door, not the front gate
CVE-2024-3293 is a blind SQL injection in the rtmedia_gallery shortcode of the rtMedia WordPress plugin. Affected versions are all releases through 4.6.18; the fix landed in 4.6.19. Exploitation requires an attacker to already have a Contributor-level account or higher on a WordPress site running this specific plugin.
The vendor's 8.8/HIGH score is technically defensible in CVSS terms because SQLi against the application database can be ugly. But real-world risk is lower: this is a niche plugin with about 8,000+ active installs, it is post-auth, and the path starts with either stolen credentials or an intentionally granted low-privilege publishing role. That combination materially shrinks the exposed population and makes this a MEDIUM operational priority for most enterprises.
4 steps from start to impact.
Find a site that actually runs rtMedia
buddypress-media plugin is present, typically using WPScan or manual plugin-path probing. This is not a generic WordPress flaw; the target must run a fairly specific BuddyPress/bbPress community plugin.- Target is a WordPress site
- The
buddypress-mediaplugin is installed and enabled - The plugin version is 4.6.18 or earlier
- Only a small subset of WordPress estates run this plugin at all
- Plugin fingerprinting is imperfect when static paths are blocked or cached
- Many enterprise WordPress sites are brochureware and do not run BuddyPress-style community features
Get a Contributor foothold
- Attacker can authenticate as Contributor or higher
- The site allows content creation or shortcode-bearing content flows reachable by that role
- This is already post-initial-access
- SSO, MFA, closed registration, and role hygiene materially reduce the reachable population
- Many enterprises do not grant Contributor to untrusted internet users
Trigger blind SQLi via shortcode parameters
rtmedia_gallery shortcode path. Because the issue is blind SQLi, exploitation often depends on timing or inference rather than immediate error-based output, which slows harvesting and raises noise.- A vulnerable shortcode execution path is reachable after login
- The backend query is built with attacker-controlled input
- Database responses can be inferred via timing or content differences
- Blind SQLi is slower and noisier than direct output-based SQLi
- Application-layer quirks, caching, WAF rules, and shortcode handling can break automation
- Some deployments may restrict shortcode use by role or editor workflow
Extract data and look for privilege escalation
- Successful SQLi exploitation
- Useful data present in the WordPress database
- Follow-on weaknesses such as weak passwords, reused credentials, or other plugin flaws
- This CVE is not direct RCE
- Privilege escalation after data theft depends on separate weaknesses
- Modern monitoring may catch unusual admin creation or authentication anomalies
The supporting signals.
| In-the-wild status | No public, authoritative evidence of active exploitation found in CISA KEV or the sources reviewed as of 2026-05-30. That matters more than the raw CVSS here. |
|---|---|
| Proof-of-concept availability | Secondary tracking sources report public GitHub PoC code exists, including truonghuuphuc/CVE-2024-3293-Poc. Treat exploit development as available enough for copy-paste operators. |
| EPSS | 0.26613 (26.613%), roughly 96th percentile per public EPSS mirrors. That says attackers *could* care, but EPSS does not erase the Contributor-auth requirement. |
| KEV status | Not listed in the CISA Known Exploited Vulnerabilities Catalog as of 2026-05-30. |
| CVSS vector reality check | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H is high because SQLi can have heavy impact, but the decisive field is PR:L: you already need an authenticated low-priv foothold. |
| Affected versions | rtMedia <= 4.6.18 is affected. The vulnerable component is the rtmedia_gallery shortcode path. |
| Fixed version | 4.6.19 fixed the issue; the official changelog for 2024-04-16 states: *Fixed shortcode security issue*. There are no distro backports to track here; this is a WordPress plugin update. |
| Exposure / install base | WordPress.org reports 8,000+ active installations. This is materially smaller than mass-market WordPress plugins, and internet-wide scanners like Shodan/Censys are poor ways to count plugin exposure for auth-only app flaws. |
| Disclosure timing | There is a date wrinkle: Wordfence/WPScan show public publication on 2024-04-22, while some feeds show 2024-04-23 due to publication pipeline and timezone differences. |
| Researcher / source | Reported by Krzysztof Zając; CNA/source attribution in NVD points to Wordfence. |
noisgate verdict.
The single biggest downgrade driver is attacker position: this bug requires authenticated Contributor access on a niche plugin, which makes it a post-foothold issue with a much smaller exposed population than the CVSS suggests. It stays out of LOW because once that prerequisite is met, SQLi against a production WordPress database can still expose credentials, content, and tenant secrets in a very direct way.
Why this verdict
- Requires authenticated Contributor access: this is not unauthenticated internet spray-and-pray.
PR:Lhere implies prior compromise, open registration, or a deliberately granted publishing role, which is a major real-world downgrade from the vendor baseline. - Narrow deployment population: rtMedia is a relatively niche BuddyPress/bbPress plugin with about 8,000+ active installs, not a ubiquitous enterprise platform. Reachable population is far smaller than the generic WordPress ecosystem.
- Still meaningful impact after auth: if an attacker already has the role they need, blind SQLi can expose database contents and create credible follow-on admin takeover paths. That keeps it above LOW despite the friction.
Why not higher?
There is no unauthenticated path, no KEV listing, and no strong public evidence of broad exploitation campaigns. It is also blind SQLi in a plugin-specific shortcode path, not a straightforward pre-auth RCE on a commonly exposed enterprise service.
Why not lower?
This is still SQL injection in production application code, and once the attacker satisfies the role requirement the blast radius can include credential material, sensitive community data, and WordPress configuration secrets. Contributor accounts are not hypothetical on editorial or community sites, so dismissing it as mere backlog noise would be sloppy.
What to do — in priority order.
- Shut down untrusted Contributor creation — If the site allows self-registration or loosely governed Contributor issuance, close that gap first. For a MEDIUM verdict there is no mitigation SLA; use this as an interim control where patching will lag, and keep it in place until the plugin is updated within the 365-day remediation window.
- Restrict shortcode-capable authoring to trusted users — Move community authors to lower-trust workflows, limit who can save or render content using rtMedia features, and review custom role plugins that accidentally broaden publishing rights. Again, no mitigation SLA for MEDIUM—apply during normal change control if needed, then remove once patched.
- Put WordPress auth behind SSO and MFA — This does not fix the bug, but it attacks the most important prerequisite: authenticated access. Roll it in as part of identity hardening for any externally reachable WordPress authoring surface, especially if those sites host contractors, moderators, or community contributors.
- Review Contributor accounts and recent role changes — Audit who has Contributor+ on sites running
buddypress-media, look for stale accounts, and remove anyone who no longer needs authoring access. That trims the reachable attack population immediately while you schedule the actual plugin update.
- A generic external vulnerability scan will not reliably prove safety here because the flaw is plugin-specific and authenticated.
- WAF signatures alone are not enough; blind SQLi buried in authenticated WordPress traffic and shortcode parameters often turns into a tuning problem, not a guaranteed block.
- Admin-only MFA is not sufficient because the vulnerable threshold is Contributor+, not Administrator.
Crowdsourced verification payload.
Run this on the target WordPress host or a mounted copy of the site's filesystem. Invoke it as sudo bash verify_cve_2024_3293.sh /var/www/html or point it directly at the plugin directory, for example sudo bash verify_cve_2024_3293.sh /var/www/html/wp-content/plugins/buddypress-media; it needs read access to the plugin files.
#!/usr/bin/env bash
# verify_cve_2024_3293.sh
# Check whether the rtMedia WordPress plugin is vulnerable to CVE-2024-3293.
# Exit codes:
# 0 = PATCHED
# 1 = VULNERABLE
# 2 = UNKNOWN
set -u
TARGET="${1:-/var/www/html}"
PLUGIN_DIR=""
VERSION=""
if [[ -d "$TARGET/wp-content/plugins/buddypress-media" ]]; then
PLUGIN_DIR="$TARGET/wp-content/plugins/buddypress-media"
elif [[ -d "$TARGET" && "$(basename "$TARGET")" == "buddypress-media" ]]; then
PLUGIN_DIR="$TARGET"
else
echo "UNKNOWN - could not find buddypress-media plugin directory from: $TARGET"
exit 2
fi
version_lte() {
# returns 0 if $1 <= $2
[[ "$(printf '%s\n%s\n' "$1" "$2" | sort -V | head -n1)" == "$1" ]]
}
extract_from_readme() {
local f="$1/readme.txt"
if [[ -f "$f" ]]; then
awk -F': ' 'BEGIN{IGNORECASE=1} /^Stable tag:/ {print $2; exit}' "$f" | tr -d '\r'
fi
}
extract_from_php_headers() {
local dir="$1"
local php
while IFS= read -r -d '' php; do
local v
v=$(awk -F': ' 'BEGIN{IGNORECASE=1} /^Version:/ {print $2; exit}' "$php" | tr -d '\r')
if [[ -n "$v" ]]; then
echo "$v"
return 0
fi
done < <(find "$dir" -maxdepth 2 -type f -name '*.php' -print0 2>/dev/null)
return 1
}
VERSION=$(extract_from_readme "$PLUGIN_DIR")
if [[ -z "$VERSION" ]]; then
VERSION=$(extract_from_php_headers "$PLUGIN_DIR" || true)
fi
if [[ -z "$VERSION" ]]; then
echo "UNKNOWN - could not determine installed rtMedia version in $PLUGIN_DIR"
exit 2
fi
if version_lte "$VERSION" "4.6.18"; then
echo "VULNERABLE - rtMedia version $VERSION is <= 4.6.18 (fixed in 4.6.19)"
exit 1
fi
if version_lte "4.6.19" "$VERSION"; then
echo "PATCHED - rtMedia version $VERSION is >= 4.6.19"
exit 0
fi
echo "UNKNOWN - parsed version '$VERSION' but could not classify"
exit 2
If you remember one thing.
buddypress-media, then sort them by whether they allow public registration, community contributors, contractors, or other non-admin authors. For this MEDIUM verdict there is noisgate mitigation SLA: no mitigation SLA — go straight to the 365-day remediation window; the noisgate remediation SLA is to update vulnerable sites to 4.6.19 or later within 365 days, but any internet-facing community site with open signup or loosely managed Contributor accounts should be moved to the front of that queue rather than left to end-of-year hygiene.Sources
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.