← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
CVE-2024-3293 · CWE-89 · Disclosed 2024-04-23

The rtMedia for WordPress

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

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.

"Serious SQLi on paper, but in practice this is a niche, post-auth WordPress plugin bug—not a fleetwide fire drill."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Find a site that actually runs rtMedia

An attacker first fingerprints a WordPress site and then confirms the 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.
Conditions required:
  • Target is a WordPress site
  • The buddypress-media plugin is installed and enabled
  • The plugin version is 4.6.18 or earlier
Where this breaks in practice:
  • 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
Detection/coverage: Authenticated-app flaws are usually missed by perimeter scanners unless the plugin is positively identified; WP plugin inventory or filesystem-based checks are more reliable.
STEP 02

Get a Contributor foothold

The attacker needs Contributor+ access before the vulnerable shortcode path is usable. In practice that means self-registration on a community portal, credential stuffing, session theft, or abuse of an already-compromised low-privilege user account.
Conditions required:
  • Attacker can authenticate as Contributor or higher
  • The site allows content creation or shortcode-bearing content flows reachable by that role
Where this breaks in practice:
  • 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
Detection/coverage: IAM logs, WordPress audit plugins, IdP telemetry, and abnormal new-account creation are the right control plane here; network scanners will not help.
STEP 03

Trigger blind SQLi via shortcode parameters

Using Burp Suite or sqlmap with a crafted request, the attacker injects into the 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.
Conditions required:
  • 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
Where this breaks in practice:
  • 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
Detection/coverage: WAF/IDS may catch repetitive boolean or time-based payloads, but generic signatures are hit-or-miss inside authenticated WordPress traffic.
STEP 04

Extract data and look for privilege escalation

If exploitation succeeds, the attacker can pull sensitive database content such as user records, password hashes, plugin settings, and other application data. With hashcat, credential reuse, or follow-on WordPress abuse, that foothold may turn into broader site compromise, but that escalation is not guaranteed by this CVE alone.
Conditions required:
  • Successful SQLi exploitation
  • Useful data present in the WordPress database
  • Follow-on weaknesses such as weak passwords, reused credentials, or other plugin flaws
Where this breaks in practice:
  • 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
Detection/coverage: Look for anomalous authenticated requests, repeated slow database queries, suspicious new users, unexpected role changes, and unusual access to authoring endpoints.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo 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 availabilitySecondary tracking sources report public GitHub PoC code exists, including truonghuuphuc/CVE-2024-3293-Poc. Treat exploit development as available enough for copy-paste operators.
EPSS0.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 statusNot listed in the CISA Known Exploited Vulnerabilities Catalog as of 2026-05-30.
CVSS vector reality checkCVSS: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 versionsrtMedia <= 4.6.18 is affected. The vulnerable component is the rtmedia_gallery shortcode path.
Fixed version4.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 baseWordPress.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 timingThere 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 / sourceReported by Krzysztof Zając; CNA/source attribution in NVD points to Wordfence.
04 · The Call

noisgate verdict.

Final Verdict
DOWNGRADED to MEDIUM (5.9/10)

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.

HIGH Affected and fixed version range
MEDIUM Real-world severity reassessment
MEDIUM Public exploitation visibility

Why this verdict

  • Requires authenticated Contributor access: this is not unauthenticated internet spray-and-pray. PR:L here 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.

05 · Compensating Control

What to do — in priority order.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
What doesn't work
  • 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.
06 · Verification

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.

noisgate-verify.sh
BASHREAD-ONLYSAFE
#!/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
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning, inventory every WordPress site running 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

  1. NVD CVE-2024-3293
  2. Wordfence advisory
  3. WordPress.org plugin page and changelog
  4. WPScan vulnerability entry
  5. Patchstack advisory
  6. CISA Known Exploited Vulnerabilities Catalog
  7. CVE Details EPSS and timeline mirror
  8. CVEFeed PoC tracking
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.