Description
The WP Visitor Statistics (Real Time Traffic) plugin for WordPress is vulnerable to SQL Injection via the 'from' (and sibling 'to'/'first'/'second') shortcode attribute of the [wsm_showTrafficStatsList] shortcode in versions up to, and including, 8.8 This is due to insufficient escaping on the user-supplied attribute and lack of sufficient preparation on the existing SQL query: `shortcode_atts()` returns attacker-supplied shortcode attributes verbatim (WP core performs no sanitization), only `$atts['id']` is re-sanitized afterward, and the raw value is then concatenated into a double-quoted SQL string literal inside `fnGetHourlyReportByDateNameTimeZone()` (`includes/wsm_db.php:1449`) and executed via `$wpdb->get_results()`. This makes it possible for authenticated attackers, with Contributor-level access and above, to append additional SQL queries into already existing queries that can be used to extract sensitive information from the database.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
osamaesh WP Visitor Statistics (Real Time Traffic)
Default version status: unaffected
0 to ≤ 8.8affected
References
- https://www.wordfence.com/threat-intel/vulnerabilities/id/00dbb2e7-5989-4fb9-b30b-ee582bf39e3f?source=cve ↗
- https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.8/includes/wsm_db.php#L1449 ↗
- https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.8/includes/wsm_statistics.php#L2002 ↗
- https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.8/includes/wsm_statistics.php#L1980 ↗
- https://plugins.trac.wordpress.org/browser/wp-stats-manager/tags/8.8/includes/wsm_db.php#L1629 ↗
- https://plugins.trac.wordpress.org/changeset/3768203/wp-stats-manager/trunk/includes/wsm_db.php ↗